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也應該接近這些數字,如果不是,我很想看看它的摘要區域顯示了什麼。

附言。最好了解進程在其生命週期中的「繁忙」程度。

相關內容