プロが教えるわが家の防犯対策術!

プロセス毎のCPU使用率を測定したいと思っています。
/proc/PID/statと/proc/statの両方のファイルの値で
算出可能でしょうか?
自分で考えたのは以下のような算出方法です。
-----------------------------------------
プロセスの実行時間(stime+utime) / システムのCP実行時間(user+sys+idel)をあるモニタ間隔で取得し、その差分から算出。
-----------------------------------------
topコマンドの中身も見てみましたが、プロセス毎の
算出方法は解りませんでした。

算出方法等お解りの方がいらっしゃいましたら、ご教授下さい。
※ topコマンドからの直接の取得というのは今回は避けたいです。
( 結果は同じだとしても。。)

A 回答 (1件)

それでいいと思います。

あと、CPU数コア数の考慮。

それから、
>システムのCP実行時間(user+sys+idel)をあるモニタ間隔
システムのCP実行時間(user+sys+idel)==モニタ間隔
ですよ。

つまり、例えば1秒ごとに、/proc/PID/stat を見て、stime+utimeの前回との差が、1秒間に使ったCPU時間なので、(stime+utime)xCPU時間単位/1秒 がシングルコアの場合のCPU使用率です。
    • good
    • 0
この回答へのお礼

遅くなりましたが、ご回答ありがとうございます。
実施したら、topと同じような値が取得できました。

お礼日時:2009/03/13 22:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!