
當我的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
也應該接近這些數字,如果不是,我很想看看它的摘要區域顯示了什麼。
附言。最好了解進程在其生命週期中的「繁忙」程度。