
私の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. プロセスがその存続期間中にどの程度「ビジー」であったかを確認する方がよいでしょう。