Intel(R) Xeon(R) CPU E5520
16개의 눈에 보이는 논리 코어(HT의 경우 8개)가 있는 머신이 있습니다. CPU 시간을 소비하는 작업(단일 스레드)을 실행하면 top은 프로세스의 CPU 사용량을 100% 정확하게 보고하지만 총 사용량은 약 3~4%만 보고합니다.
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
물론 보고된 사용량은 약 6.25%(16개 코어 중 1개)여야 합니다.
- 가상머신이라 틀린건가요?
- 올바른 값을 어떻게 계산할 수 있나요?
답변1
top
CPU를 기준으로 하고 모든 코어에 걸쳐 합산된 사용량이 요약에 보고됩니다. 반면에 프로세스 목록을 보면 상위 보고서는 참조된 하나의 코어(실제 또는 HT)의 비율을 보고합니다. 4개의 CPU 코어를 차지할 수 있는 4개의 스레드로 프로세스를 실행해 보면 CPU를 400% 사용하는 것을 알 수 있습니다.
이유는 모르겠지만 이것이 top
제가 본 모든 Linux 시스템이 작동하는 방식입니다.
답변2
top
설명하신 대로 대부분의 경우 기본적으로 "Irix" 모드에서 작동합니다. 총 CPU 성능의 백분율을 얻으려면(즉, 가능한 CPU 사용량의 합이 cpu_cores_number * 100%가 아니라 100%인 경우) 을 눌러 "Irix" 모드를 전환하세요 I
.