2024/02/13 22:13:39

vmstat

プロセス、メモリ、 ページ、ブロックI/O、CPUの状況を見るコマンド

vmstat 実行例

$ vmstat 5
 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 263008  80036  52668  97032    0    0     0     2    0    0  2  0 97  1  0
 1  1 263008  80036  52668  97072    0    0     0   361 1047   23 14  0 86  0  0
 1  0 263008  79912  52676  97120    0    0     1     1  777   36 10  0 82  8  0

vmstat の出力内容は kernel のバージョンによって微妙に違うらしい。上の例は 2.6.39.1

vmstat コマンド

   vmstat [-a] [-n] [-S unit] [間隔 [ 実行回数]]
   vmstat [-s] [-n] [-S unit]
   vmstat [-m] [-n] [間隔 [ 実行回数]]
   vmstat [-d] [-n] [間隔 [ 実行回数]]
   vmstat [-p パーティション] [-n] [間隔 [ 実行回数]]
   vmstat [-f]
   vmstat [-V]

代表的なオプション

vmstat は主に以下のように使います。

vmstat [間隔 [ 実行回数]]

間隔は秒単位。実行回数を指定しなければ永遠に指定間隔で更新表示が続きます。

いくつかのオプションを併用すると便利です。

vmstat の表示切替オプション
-n ヘッダを最初しか出さない
-s 表示を立てならびに切り替える。このオプションは出力を1度しかしない
-a メモリの項目の表示を active/inactive に切り替える。kernel2.5.41以上
-w メモリ量が大きい場合に、表示を広くとる
-S k:1000 K:1024 m:1000000 M:1048576 を指定して、数値の表示単位を切り替える。デフォルトは K

以下のようなオプションで違った統計を表示することもできます。

vmstat の機能切替オプション
-f 起動してからのフォーク数を表示する
-m slab の情報を表示する
-d ディスク情報を表示する kernel2.5.70以上
-p パーティション名を指定して統計を取得する

出力項目の意味

procs

  • r:実行待ち状態にあるプロセス数
    • r の値が CPU 数より大きい場合、CPU 待ちが発生している
  • b:割り込み不可能なスリープ状態にあるプロセス数
    • b の値が大きい場合、I/O 待ちを疑うべき(check iostat)

memory

  • swpd:仮想メモリー量
  • free:空きメモリー量
  • buff:バッファとして用いられているメモリー量

swap

  • si:swap in ディスクからスワップインしているメモリー量(秒単位)
  • so:swap out ディスクにスワップしているメモリー量(秒単位)

iO

  • bi:ブロック・デバイスに送られたブロック数(秒単位)
  • bo:ブロック・でバイスから受け取ったブロック数(秒単位)

system

  • in:毎秒の割り込み回数
  • cs:毎秒のコンテキスト・スイッチ回数

cpu

  • us:ユーザー時間
  • sy:システム時間
  • id:アイドル時間
  • wa:IO待ち時間
サイト内検索