top/ps/mpstat показывает другой вывод

top/ps/mpstat показывает другой вывод

Когда мои topшоу загружены 19/20 и мои psшоу

root@server:/home/nohup# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5
%CPU   PID USER     COMMAND
122131 18695 mysql  /usr/sbin/mysqld  xxxxx
0.1   961 root     [kdmflush]
0.1   937 root     [kdmflush]
0.1  1025 root     [jbd2/dm-2-8]

Но mpstatшоу

root@server:/home/nohup# mpstat
Linux 2.6.32-5-amd64 (sms-db3)  06/13/2014  _x86_64_    (16 CPU)

09:35:42 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
09:35:42 PM  all    2.38    0.00    0.15    0.15    0.00    0.02    0.00    0.00   97.29

straceпоказывает, что mpstatвыполняется чтение /proc/statдля получения загрузки процессора.

Какому из них верить? Что вызывает эту разницу, или я неправильно использую? Я использую Debian Squeeze 2.6.32-5-amd64

решение1

Работает Debian Squeeze procps 3.2.8, очень старая версия библиотеки. mpstatпоказывает числа, похожие на top, то есть это по сути числа за последние несколько секунд. psпоказывает статистику с момента запуска процесса.

Цифры необычны, что указывает на что-то переполненное или обтекающее. Если вы хотите выяснить, что происходило прямо в эту секунду, то это mpstatкажется более точным. topдолжно быть близко к этим числам, а если нет, мне было бы любопытно посмотреть, что показывала его сводная область.

P.S. Лучше посмотреть, насколько «занятым» был процесс на протяжении всего времени его существования.

Связанный контент