Бег mpstat -P ALL
на одном из наших серверов возвращает следующее:
06:48:02 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
06:48:02 AM all 15.61 0.08 84.09 7.20 0.56 0.01 0.00 13.97 763.27
06:48:02 AM 0 12.40 0.07 82.12 8.26 0.41 0.01 0.00 13.21 341.40
06:48:02 AM 1 18.82 0.04 86.06 6.15 0.72 0.01 0.00 14.73 421.87
Итак, общая загрузка ЦП:
все - 122,52%
CPU1 - 116,48%
CPU2 - 126,53%
Я не понял, как работает mpstat? Я думал, что сумма всегда должна составлять 100%?
Если это актуально, сервером является RHEL 5.5. Процессор - Intel Xeon Dual Core L3406 2.26Ghz
Из справочной страницы mpstat:
Параметр interval указывает интервал времени в секундах между отчетами. Значение 0 (или отсутствие параметров вообще) указывает на то, что статистика процессоров должна сообщаться за время с момента запуска системы (загрузки).
Однократный запуск mpstat дает только временную оценку использования. Запуск mpstat с аргументом интервала даст вам более точные числа.
Это несоответствие является накоплением ошибок округления, которое увеличивается с активностью системы и временем безотказной работы. Фактическая отображаемая статистика собирается из /proc/stat
и /proc/uptime
. Статистика ведется в USER_HZ (обычно 100 Гц, getconf CLK_TCK
подтвердит это), поэтому ваше разрешение составляет всего 1/100 секунды; а центральный процессор многое делает за 0,01 секунды.
Например:
$ cat /proc/stat; cat /proc/uptime
cpu 414821 51578 226720 66535103 73932 0 4548 0 0 0
cpu0 205014 22950 114302 33188492 36369 0 2071 0 0 0
cpu1 209807 28628 112418 33346611 37563 0 2477 0 0 0
<...>
335694.91 665351.03
На моей рабочей станции, которая проработала всего несколько дней, мы получаем вышеуказанные числа. Если мы посчитаем процент от общего времени статистики процессора по сравнению с временем безотказной работы, мы получим
(414821 + 51578 + 226720 + 66535103 + 73932 + 4548) / 335694.91 / 2
100.25%
Есть (не очень полезное) примечание о статистике процесса в ps
справочную страницу.
Использование ЦП в настоящее время выражается как процент времени, затраченного на выполнение в течение всего времени существования процесса. Это не идеально и не соответствует стандартам, которым в остальном соответствует ps. Использование ЦП вряд ли составит в сумме 100%