Eu tenho uma máquina com Intel(R) Xeon(R) CPU E5520
visível como 16 núcleos lógicos (8 com HT). Se eu executar algo para consumir tempo de CPU (thread único), a parte superior informa corretamente 100% do uso da CPU para o processo, mas apenas cerca de 3-4% do 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
Certamente o uso relatado deve ser de ~ 6,25% (1 de 16 núcleos).
- Está incorreto porque é uma máquina virtual?
- Como eu poderia calcular um valor correto?
atop
e mudar a parte superior para uso relatório de cada CPU individualmente (pressionando1
)Respostas:
top
no resumo relata o uso relativo à CPU com todos os núcleos adicionados. Por outro lado, quando você olha na lista de processos, os principais percentuais de relatórios referenciados a um núcleo (real ou HT). Tente executar um processo com 4 threads que podem consumir até 4 núcleos de CPU; você o encontrará usando 400% da CPU.Não sei dizer por que, mas é assim que
top
funciona em todos os sistemas Linux que eu já vi.fonte
Na maioria das vezes,
top
funciona no modo 'Irix' por padrão, assim como você o descreve. Se você deseja obter uma porcentagem do total de recursos da CPU (ou seja, quando a soma do possível uso da CPU atingir 100% e não cpu_cores_number * 100%), basta alternar o modo 'Irix' pressionandoI
.fonte