私の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。プロセスが寿命の間どのくらい「忙しい」かを知ることをお勧めします。