¿Cómo puedo tener un 400% de CPU ocupada en 2 núcleos?


13

Entiendo eso Σ(%CPU) ≤ logicalcores*(1+ε)(donde ε es medida y error de redondeo). Pero, ¿cómo puedo tener en un sistema de 2 núcleos 2 procesos diferentes, cada uno con el 200% de la CPU (medido por htop)?

EDITAR núcleos en la ecuación anterior significa núcleos lógicos, es decir, tener en cuenta todos los hyperthreading, el número de CPU, etc.

EDIT 2 A pesar de que htop muestra la cantidad de procesadores que adjunto cpuinfo

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     T9600  @ 2.80GHz
stepping    : 10
cpu MHz     : 800.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
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 lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dts tpr_shadow vnmi flexpriority
bogomips    : 5585.20
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Core(TM)2 Duo CPU     T9600  @ 2.80GHz
stepping    : 10
cpu MHz     : 800.000
cache size  : 6144 KB
physical id : 0
siblings    : 2
core id     : 1
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 lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida dts tpr_shadow vnmi flexpriority
bogomips    : 5586.38
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

¿Esto también se informa de esta manera en la parte superior? Si es así, ¿qué sucede cuando alterna entre "Modo Irix" y "Modo Solaris" (use la tecla I para alternar entre los dos)?
Steven D

@ Steven D: Comprobaré cuándo será la próxima vez (probablemente pronto).
Maciej Piechotka

1
cat /proc/cpuinfo > /dev/unix.SE
SamB

@ Steven D: pude reproducir ~ 15% extra en el modo Irix (agregando 2 procesos; todavía parece demasiado para los errores de redondeo). Hasta ahora no pude reproducirlo en modo Solaris.
Maciej Piechotka

Respuestas:


5

Dos procesadores de doble núcleo contienen 4 CPU. También existen procesadores multihilo. Cada subproceso aparece como una CPU para el sistema operativo, aunque no son verdaderas CPU como lo son los núcleos. La mayoría de las CPU de subprocesos múltiples tienen dos subprocesos por núcleo, por lo que puede tener un único procesador de doble núcleo y dos subprocesos que aparece en su sistema operativo en 4 CPU.

Cabe señalar que Sun Microsystems tenía un chip T2 que tenía 8 núcleos y 8 hilos por núcleo para 64 CPU virtuales en un solo procesador.


Es procesador único, doble núcleo, subclockeado por cpufreq core 2 duo (edición móvil). No hay hyperthreading (está en P4 e i3 / 5/7).
Maciej Piechotka

1
Vale la pena verificar si también ves esto en la parte superior, o si esto es un error en 'htop'.
ewindisch

2
check in /proc/cpuinfo- ahora hay muchas CPUs que ves allí ..
Drakosha

5

Aparecerá un único procesador físico hiperprocesado como dos procesadores lógicos. Por lo tanto, su procesador de doble núcleo en el que cada núcleo está hiperprocesado aparecerá como cuatro procesadores lógicos para cosas como top, cpuinfo, prstat, monitor de actividad, etc.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.