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

procps 3.2.8このライブラリの非常に古いバージョンのDebian Squeezeが実行されています。mpstatと同様の数字を表示するので、デフォルトでtopは過去数秒の数字です。psプロセスの開始時に統計を表示します。

これらの数字は珍しいが、何かが注がれているか包装されていることを示します。今、この瞬間に何が起こっているのかを調べようとしたら、それがmpstatより正確になると思います。topそれはまたその数に近づくべきです。そうでない場合は、要約領域が何を示しているのかを見たいです。

PS。プロセスが寿命の間どのくらい「忙しい」かを知ることをお勧めします。

関連情報