Mientras estaba aprendiendo sobre la carga de la CPU, llegué a saber que depende de la cantidad de núcleos. Si tengo 2 núcleos, la carga 2 dará una utilización del 100% de la CPU.
Así que traté de averiguar los núcleos. (Ya sé que el sistema tiene 2 núcleos, 4 subprocesos, así que 2 núcleos virtuales. Consulte aquí sobre el procesador ). Así que corrí, lo cat /proc/cpuinfo
que me dio
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 774.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 1600.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 800.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 774.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Ahora estoy totalmente confundido. Muestra 4 procesadores, con 2 núcleos de CPU. ¿Alguien puede explicar esta salida?
Una vez que la carga de mi CPU era 3.70, ¿es esta la carga máxima? Aún en ese momento, la CPU estaba en <50%.
¿Qué pasa con turbo boost? ¿Todos los núcleos están potenciados por turbo o solo son físicos?
¿Algún método en Ubuntu para obtener la frecuencia actual de la CPU para ver si el procesador está en turbo boost o no?
La carga fue a 3.70 aproximadamente 100%. Pero el uso de la CPU no fue del 100% debido al tiempo de respuesta de IO. Esto no significa que el dispositivo IO estará a la velocidad máxima, pero el dispositivo io estará 100% ocupado, lo que a veces afecta las aplicaciones que usan IO, por ejemplo: la música puede romperse.
core id
). Elphysical id
te da el chip (supongo). Aquí, es 0 para todos los procesadores, por lo que solo tiene un chip.Respuestas:
Las palabras "CPU", "procesador" y "núcleo" se utilizan de maneras algo confusas. Se refieren a la arquitectura del procesador. Un núcleo es la unidad independiente más pequeña que implementa un procesador de uso general; un procesador es un conjunto de núcleos (en algunos sistemas ARM, un procesador es un conjunto de grupos que son en sí mismos conjuntos de núcleos). Un chip puede contener uno o más procesadores (los chips x86 contienen un único procesador, en este sentido del procesador de textos ).
Hyperthreading significa que algunas partes de un núcleo están duplicadas. Un núcleo con hyperthreading a veces se presenta como un conjunto de dos "núcleos virtuales", lo que significa que no cada núcleo es virtual, sino que el plural es virtual porque en realidad no son núcleos separados y a veces tendrán que esperar mientras el otro núcleo está haciendo uso de una parte compartida.
En lo que respecta al software, solo hay un concepto que es útil en casi todas partes: la noción de hilos paralelos de ejecución. Entonces, en la mayoría de los manuales de software, los términos CPU y procesador se usan para referirse a cualquier pieza de hardware que ejecute el código del programa. En términos de hardware, esto significa un núcleo o un núcleo virtual con hyperthreading.
Por lo tanto, le
top
muestra 4 CPU, porque puede tener 4 hilos ejecutándose al mismo tiempo./proc/cpuinfo
tiene 4 entradas, una para cada CPU (en ese sentido). Losprocessor
números (que son el número de las entradas ) corresponden a estos 4 hilos.cpuNUMBER
/sys/devices/system/cpu
/proc/cpuinfo
es uno de los pocos lugares donde obtiene información sobre qué hardware implementa estos hilos de ejecución:significa que
cpu0
es uno de los 4 hilos dentro del componente físico (procesador) número 0, y que está en el núcleo 0 entre 2 en este procesador.fuente
Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%.
,What about turbo boost ? Are all cores are turbo boosted or only physical ?
yHow to check frequency.
uptime
.por CPU quise decir uso de CPU. Comprendí por qué. Pero, ¿cómo verificar la frecuencia o verificar si la CPU está impulsada por turbo?top
,uptime
). La unidad de hardware que se ocupa de los procesos es, en última instancia, una cuestión de software de bajo nivel (compilación, sistema operativo). El informe de cpuinfo resume el hecho de que cada procesador físico (uno de varios cpu en un dado) puede ampliar sus poderes informáticos mediante hazañas tecnológicas como el subprocesamiento múltiple. Se considerará "cualquier cosa" que pueda encargarse de un proceso a la vez como procesador. En el ojo contable de cpuinfo, las capacidades del dispositivo conducen al recuento total de "procesadores"Solo respondiendo tu primera pregunta. En la salida de
cat /proc/cpuinfo
puede ver la siguiente información: -Puedes ver el recuento de
siblings is 4
ycpu cores is 2
.cpu cores
siendo 2 es el número total de núcleos en el procesador que puede verificarse a partir de la especificación proporcionada en la URL de Intel que ha proporcionado. De manera similar,siblings
es el determinado por el número de subprocesos que proporciona Intel HTT.Del mismo modo, para la identificación física es lo
0
que indica que solo hay un chip de procesador y para los identificadores de núcleo puede ver0 and 1
que hay 2 núcleos en el procesador.Actualización: Agregar respuestas a las otras preguntas.
Bueno, diré que todos los núcleos activos están potenciados por turbo. Hola amigo, deberías haber consultado los ejemplos de nuestra querida Wikipedia . Explicado con cálculos también.
Turbo boost o no, puedes ver los detalles de la frecuencia en la salida de
lscpu
. Y para una salida refinada: -fuente
lscpu
comando.Puedes probar esto en la terminal:
sudo lscpu
Esto le dará una visión general de su rasgo físico de la CPU. En cuanto a turbo boost o no, esto es puramente control de hardware que el sistema operativo en sí mismo, por lo que a menos que Intel tenga controladores específicos para Linux que puedan ajustar la velocidad de su procesador, no hay un cable sólido para verificar el estado del turbo boost (a menos que haya un código de comando para Consulte otros foros si hay alguna pista con respecto a su pregunta).
En cuanto a mí, esto es lo que obtengo cuando escribo el comando anterior. Mi AMD dijo que es de cuatro núcleos, pero mi núcleo físico enumerado aquí es solo 2, con 2 subprocesos por núcleo (agrega hasta 4 núcleos). Estoy usando el procesador AMD A10 APU 5750m.
fuente
La carga del sistema y el% de CPU son dos formas diferentes de medir cómo se usa la potencia de la CPU.
Ambas medidas están relacionadas pero de ninguna manera son idénticas.
fuente