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つのカテゴリーに分かれている
プロセスに関するデータ
r : 実行待ちプロセス
b:スリープ状態のプロセス数(割り込み不可)
メモリに関するデータ
swpd : スワップサイズ(単位はKB)
free : 空きメモリサイズ(単位はKB)
buff:バッファに割り当てられているメモリサイズ(単位はKB)
cache : キャッシュに割り当てられているメモリサイズ(単位はKB)
ディスクスワップに関するデータ
si : ディスクからスワップインされているメモリサイズ(KB/秒)
so : ディスクからスワップアウトされているメモリサイズ(KB/秒)
ブロックデバイス(ハードディスク)との入出力に関するデータ
bi : ブロックデバイスからの入力(単位はblock / sec)
bo : ブロックデバイスからの出力(単位はblock / sec)
システムに関するデータ
in : 1秒当たりの割り込み回数
cs:1秒当たりのコンテキストスイッチの回数
割り込みとは処理中のプロセスを一時放置して、別のプロセスを処理すること
コンテキストスイッチは、放置していたプロセスを再度処理すること
1つの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 1
上記のように指定すれば1秒間隔でvmstatの結果が出力される
終了するときはCtrl + C
-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になって見やすくなる