Tengo una máquina con Intel(R) Xeon(R) CPU E5520
visible 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?
atop
cambiar la parte superior para informar el uso de cada CPU individualmente (presionando1
)Respuestas:
top
en 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
top
funciona en todos los sistemas Linux que he visto.fuente
La mayoría de las veces
top
funciona 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' presionandoI
.fuente