.NET Frameworkに存在する統計を使用して、システムモードとユーザーモードで特定のプロセスのCPU時間消費を計算したいと思います/proc/<PID>
。
ファイルにはutimeとstimeという2つのフィールドがあり、/proc/<PID>/stat
その文書には次のように記載されています。
- utime:このプロセスがユーザーモードでスケジュールされた時間
- stime:プロセスがカーネル(システム)モードでスケジュールされた時間
次の式を使用して、システムモードでのCPU時間消費を秒単位で計算します。 (stime/clock tick) ユーザーモードでの CPU 時間消費には、次の式を使用します。 (utime/クロックティック数)
atop
システムとユーザーのCPU時間のコマンド出力を確認しましたが、計算が正しくありません。
メモ:プロセスのシステムとユーザーのCPU時間について間違ったフィールドを評価している場合は、お知らせください。それとも正しい計算方法は何ですか?
PS utimeとstimeはCPUクロックティックで表されているため、システムCPU時間とユーザーCPU時間を秒単位で計算するために、このフィールドを1秒あたりのクロックティック数で除算しました。