当我的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
也应该接近这些数字,如果不是,我很想看看它的摘要区域显示了什么。
附言。最好了解进程在其生命周期中的“繁忙”程度。