質問: cpu使用率取得方法について プロセス毎のcpu使用率を測定したいと思っています。 /proc/pid/statと/proc/statの両方のファイルの値で 算出可能でしょうか? 自分で考えたのは以下のような算出方法です。 ----------------------------------------- プロセスの実行時間(stime+utime) / システムのcp実行時間(user+sys+idel)をあるモニタ間隔で取得し、その差分から算出。 ----------------------------------------- topコマンドの中身も見てみましたが、プロセス毎の 算出方法は解りませんでした。 算出方法等お解りの方がいらっしゃいましたら、ご教授下さい。 ※ topコマンドからの直接の取得というのは今回は避けたいです。 ( 結果は同じだとしても。。)
回答: それでいいと思います。あと、cpu数コア数の考慮。 それから、 >システムのcp実行時間(user+sys+idel)をあるモニタ間隔 システムのcp実行時間(user+sys+idel)==モニタ間隔 ですよ。 つまり、例えば1秒ごとに、/proc/pid/stat を見て、stime+utimeの前回との差が、1秒間に使ったcpu時間なので、(stime+utime)xcpu時間単位/1秒 がシングルコアの場合のcpu使用率です。