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

プロセスに関するデータ

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になって見やすくなる

  • 最終更新: 2023/05/12 18:19