Top では次のような出力が得られます:
%Cpu(s): 4.7 us, 1.3 sy, 0.0 ni, 93.9 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
私の CPU がユーザー プロセスに 4.7% の時間を費やした場合、このような結果が出るまでにどれだけの時間履歴が考慮されたのでしょうか。
答え1
からトップはどこでリアルタイムデータを取得するのかbdonlan による回答:
文書に記載されているようにプロセス(5)ファイルには
/proc/(pid)/stat
次のフィールドがあります:
utime %lu
このプロセスがユーザー モードでスケジュールされている時間の量。クロック ティックで測定されます (sysconf(_SC_CLK_TCK) で割った値)。これにはゲスト時間 guest_time (仮想 CPU の実行に費やされた時間、以下を参照) が含まれるため、ゲスト時間フィールドを認識しないアプリケーションでは、計算からその時間が失われることはありません。
stime %lu
このプロセスがカーネル モードでスケジュールされている時間の長さ。クロック ティック単位で測定されます (sysconf(_SC_CLK_TCK) で除算)。