
Когда мои 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. Лучше посмотреть, насколько «занятым» был процесс на протяжении всего времени его существования.