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 [間隔 [ 実行回数]]
間隔は秒単位。実行回数を指定しなければ永遠に指定間隔で更新表示が続きます。
いくつかのオプションを併用すると便利です。
-n | ヘッダを最初しか出さない |
-s | 表示を立てならびに切り替える。このオプションは出力を1度しかしない |
-a | メモリの項目の表示を active/inactive に切り替える。kernel2.5.41以上 |
-w | メモリ量が大きい場合に、表示を広くとる |
-S | k:1000 K:1024 m:1000000 M:1048576 を指定して、数値の表示単位を切り替える。デフォルトは K |
以下のようなオプションで違った統計を表示することもできます。
-f | 起動してからのフォーク数を表示する |
-m | slab の情報を表示する |
-d | ディスク情報を表示する kernel2.5.70以上 |
-p | パーティション名を指定して統計を取得する |
出力項目の意味
procs
- r:実行待ち状態にあるプロセス数
- r の値が CPU 数より大きい場合、CPU 待ちが発生している
- b:割り込み不可能なスリープ状態にあるプロセス数
- b の値が大きい場合、I/O 待ちを疑うべき(check
iostat
)
- b の値が大きい場合、I/O 待ちを疑うべき(check
memory
- swpd:仮想メモリー量
- free:空きメモリー量
- buff:バッファとして用いられているメモリー量
swap
- si:swap in ディスクからスワップインしているメモリー量(秒単位)
- so:swap out ディスクにスワップしているメモリー量(秒単位)
iO
- bi:ブロック・デバイスに送られたブロック数(秒単位)
- bo:ブロック・でバイスから受け取ったブロック数(秒単位)
system
- in:毎秒の割り込み回数
- cs:毎秒のコンテキスト・スイッチ回数
cpu
- us:ユーザー時間
- sy:システム時間
- id:アイドル時間
- wa:IO待ち時間