Почему top сообщает о неправильном использовании процессора?

10

У меня есть машина с Intel(R) Xeon(R) CPU E5520видимым как 16 логических ядер (8 с HT). Если я запускаю что-нибудь, чтобы съесть процессорное время (однопоточное), top правильно сообщает о 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% (1 из 16 ядер).

  • Это неправильно, потому что это виртуальная машина?
  • Как я могу рассчитать правильное значение?

источник
1
Вы можете попытаться atopизменить верхнюю часть, чтобы сообщить об использовании каждого процессора в отдельности (нажав 1)
Hubert Kario
@HubertKario, использование, указанное для каждого ядра, является правильным, так почему же тогда общее значение неверно?
Если уровни использования отдельных ядер верны, это может означать, что ошибка в топе так же маловероятна, как кажется ...
Хьюберт Карио
Это был бы не первый пост о неправильных топовых результатах в виртуальных машинах. Можете ли вы описать вашу VM-технологию и ваши хост и гостевые операционные системы?
Нильс
@ Nils Xen с гостем на сервере Ubuntu / 2.6.32-21. Нет информации о хосте ОС.

Ответы:

12

topв сводных отчетах об использовании процессора относительно всех ядер. С другой стороны, когда вы просматриваете список процессов, процент лучших отчетов ссылается на одно ядро ​​(реальное или HT). Попробуйте запустить процесс с 4-мя потоками, которые могут поглотить 4 ядра ЦП, вы найдете его с использованием 400% ЦП.

Я не могу сказать , почему, но это, как topработает по всей системе Linux я видел.

Паткос Чаба
источник
5

Чаще всего topпо умолчанию работает в режиме «Irix», как вы его и описали. Если вы хотите получить процент от общих возможностей ЦП (т. Е. Когда сумма возможного использования ЦП увеличивается до 100%, а не cpu_cores_number * 100%), просто переключите режим «Irix», нажав I.

moon.musick
источник