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 1 0 128768 705832 0 128180 0 20 106 38 926 437 8 1 91 0 0
オプションを付けずに vmstat を実行すると
見出し2行+データ1行の3行分のテキストが表示される
各項目の意味
出力されるデータは以下の6つのカテゴリーに分かれている
- procs
- memory
- swap
- io
- system
- cpu
procs
プロセスに関するデータ
r : 実行待ちプロセス
b:スリープ状態のプロセス数(割り込み不可)
memory
メモリに関するデータ
swpd : スワップサイズ(単位はKB)
free : 空きメモリサイズ(単位はKB)
buff:バッファに割り当てられているメモリサイズ(単位はKB)
cache : キャッシュに割り当てられているメモリサイズ(単位はKB)
swap
ディスクスワップに関するデータ
si : ディスクからスワップインされているメモリサイズ(KB/秒)
so : ディスクからスワップアウトされているメモリサイズ(KB/秒)
io
ブロックデバイス(ハードディスク)との入出力に関するデータ
bi : ブロックデバイスからの入力(単位はblock / sec)
bo : ブロックデバイスからの出力(単位はblock / sec)
system
システムに関するデータ
in : 1秒当たりの割り込み回数
cs:1秒当たりのコンテキストスイッチの回数
割り込みとは処理中のプロセスを一時放置して、別のプロセスを処理すること
コンテキストスイッチは、放置していたプロセスを再度処理すること
1つのCPUで複数のプロセスを処理する場合、別のプロセスに切り替えながら短時間だけ処理することを繰り返して、仮想的に並列処理しているように見せている
cpu
CPU使用率
us : userの略、一般のプロセスが実行されていた時間を表示(ユーザー時間の割合)
sy : systemの略、Linuxコール・システムコール等で実行した処理時間の割合(システム時間の割合)
id : アイドル状態の時間の割合(CPUが何もしていない時の状態の割合)
wa : ディスクIOの待ち時間の割合
st : 仮想環境上でゲストOSがCPUに割り当てられなかった時間の割合
us + sy + id + wa + st = 100%
us と sy の合計が100%に近かったらCPU使用率がカツカツ、数値が低ければCPUのスペックに余裕がある
vmstatで継続監視
vmstat の後ろに数値を指定すると指定した秒数毎に自動で継続実行される
vmstat 1
上記のように指定すれば1秒間隔でvmstatの結果が出力される
終了するときはCtrl + C
vmstatのオプション
-S で単位を指定
-S m: メモリを1,000,000(MB単位)で表示
vmstat -S m
実行結果
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 151 338 0 152 0 0 102 38 938 431 10 1 88 0 0
memoryの項目はデフォルトで単位がKBになっている
桁数が多くて見づらいので、vmstat -S m
としてやると単位がMBになって見やすくなる