vmstatは最初の実行時に正しい値を返しません。

vmstatは最初の実行時に正しい値を返しません。

vmstatCPU使用率を得るために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 更新数。カウントがない場合、遅延を定義するときのデフォルト値は無限です。

[...]

関連情報