vmstat
CPU使用率を得るためにUbuntu Linuxを使用しています。現在のCPU使用率はほぼ100%に達しています。次のように実行するとvmstat
:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
8 1 0 6383924 1287224 18123836 0 0 2 53 2 16 1 1 98 0 0
CPUアイドル率は98%で表示されます。ただし、遅延状態で実行して次のように計算すると、次のようになります。
$ vmstat 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
5 1 0 6491296 1287268 18128956 0 0 2 53 3 17 1 1 98 0 0
4 1 0 6491992 1287268 18129080 0 0 0 2264 11142 17980 98 2 0 0 0
2番目から、正しいCPU使用率が表示されます。私の質問は、最初に実行したときに正しい値を出力しない理由です。
答え1
man vmstat
(私は太字で強調しています)から:
要約
vmstat [options] [delay [count]]
説明する
vmstat
プロセス、メモリ、ページング、ブロックIO、トラップ、ディスク、およびCPUアクティビティに関する情報を報告します。生成された最初のレポートは、最後の再起動以降の平均を提供します。
他のレポートは、遅延されたサンプル期間に関する情報を提供します。どちらの場合も、プロセスとメモリの報告はすぐに行われます。
オプション
delay
更新間の遅延時間(秒)。 遅延を指定しないと、開始後の平均を含むレポートのみが印刷されます。
count
更新数。カウントがない場合、遅延を定義するときのデフォルト値は無限です。[...]