¿Por qué top informa el uso incorrecto de la CPU?

10

Tengo una máquina con Intel(R) Xeon(R) CPU E5520visible como 16 núcleos lógicos (8 con HT). Si ejecuto algo para comer, el tiempo de CPU (subproceso único) arriba informa correctamente el uso del 100% de la CPU para el proceso, pero solo alrededor del 3-4% del uso total.

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

Seguramente el uso reportado debe ser ~ 6.25% (1 de 16 núcleos).

  • ¿Es incorrecto porque es una máquina virtual?
  • ¿Cómo puedo calcular un valor correcto?

fuente
1
puede intentar atopcambiar la parte superior para informar el uso de cada CPU individualmente (presionando 1)
Hubert Kario
@HubertKario, el uso informado para cada núcleo es correcto, entonces, ¿por qué el error es total?
Si los niveles de uso de los núcleos individuales son correctos, esto sugeriría un error en la parte superior tan poco probable como parece ...
Hubert Kario
Esta no sería la primera publicación sobre resultados superiores incorrectos en máquinas virtuales. ¿Puede describir su tecnología VM y sus sistemas operativos host e invitados?
Nils
@Nils Xen con un invitado Ubuntu / 2.6.32-21-server. No hay información sobre el sistema operativo host.

Respuestas:

12

topen el resumen se informa el uso relativo a la CPU con todos los núcleos sumados. Por otro lado, cuando mira en la lista de procesos, el porcentaje de informes superiores hace referencia a un núcleo (real o HT). Intente ejecutar un proceso con 4 subprocesos que pueden consumir 4 núcleos de CPU, lo encontrará con un 400% de CPU.

No puedo decir por qué, pero así es como topfunciona en todos los sistemas Linux que he visto.

Patkos Csaba
fuente
5

La mayoría de las veces topfunciona en modo 'Irix' de forma predeterminada, tal como lo describe. Si desea obtener un porcentaje de las capacidades totales de la CPU (es decir, cuando la suma del posible uso de la CPU se suma al 100% y no cpu_cores_number * 100%), simplemente active el modo 'Irix' presionando I.

moon.musick
fuente