# vmstat ## プロセス、メモリ、 ページ、ブロックI/O、CPUの状況を見るコマンド {{TOC 3-}} ### 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 | [vmstat の表示切替オプション] 以下のようなオプションで違った統計を表示することもできます。 ---------|----------| **-f** | 起動してからのフォーク数を表示する | **-m** | slab の情報を表示する | **-d** | ディスク情報を表示する kernel2.5.70以上 | **-p** | パーティション名を指定して統計を取得する | [vmstat の機能切替オプション] ### 出力項目の意味 #### 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待ち時間