そういえば前に調べてすっかり忘れていた。
man psにあるように
現在のところCPU使用率は、プロセスの生存期間中に実行に利用した時間のパーセンテージで表される。これは理想的ではなく、psが準拠すべき標準に準拠していない。CPU使用率は足し合わせても正確に100%になることは少ない
だもんでpsで表示される%cpuは cpu利用時間 / プロセス生存時間 なので、psで表示される値は単位時間あたりの平均利用率。
top,sysstat,vmstat,mpstatあたりだとOS全体だけど、瞬間的なCPU利用率はわかる。
プロセスごとの瞬間的なCPU利用率は、どうやって調べるんだろう?
追記
この人も同じようなこと書いてた。
なお、sysstat-9.x ではプロセスごとのパフォーマンス情報を取る pidstat というコマンドが利用できるようになったので、こちらを利用する手もある。
pidstatを使えばプロセスごとの瞬間的な値がわかるらしい。手元のバージョン調べたらpidstatはたぶん8系からあるっぽいけど。
というわけでsysstatのバージョンをあげよう。
$ sa_lib_dir=/usr/lib64/sa sa_dir=/var/log/sa conf_dir=/etc/sysconfig \ ./configure --prefix=/usr --enable-install-cron $ make $ sudo make install