kazmax - Linux で自宅サーバー

vmstat - システム管理コマンドの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. VM モードにおけるフィールドの説明
  5. ディスクモードにおけるフィールドの説明
  6. ディスクパーティションモードにおけるフィールドの説明
  7. SLAB モードにおけるフィールドの説明
  8. 注意
  9. ファイル
  10. 関連項目
  11. バグ
  12. 著者

名前

vmstat - 仮想メモリの統計を報告する

書式

.ft B vmstat [ -a ][ -n ][ delay [ count ]]
vmstat [ -f ][ -s ][ -m ]
vmstat [ -S unit]
vmstat [ -d]
vmstat [ -p disk partition]
vmstat [ -V ]

説明

vmstat はプロセス・メモリ・ページング・ブロック IO・トラップ・CPU 稼働状況 などに関する情報を報告する。
最初に作成される報告では、最後に再起動して以降の平均が与えられる。 それ以降の報告では、長さ delay のサンプリング期間に関する情報が与えられる。 プロセスとメモリに関する報告は、いずれも報告の瞬間のものである。

オプション

-a スイッチを 2.5.41 以降のカーネルで指定すると、 アクティブ/非アクティブなメモリの表示する。

-f スイッチを指定すると、ブート後の fork 数を表示する。 これには fork, vfork, clone システムコールが含まれ、 生成されたタスク数と等しい。 各プロセスは、スレッドの使用数によって、1 つ以上のタスクで表現される。 これは繰り返し表示されない。

-m は slabinfo を表示する。

-n スイッチを指定すると、ヘッダの表示が一度だけになる。 デフォルトではある周期で繰り返しヘッダが表示される。

-s スイッチはいろいろなイベントカウンタとメモリの統計の表を表示する。 これは繰り返し表示されない。

delay は更新の間隔で、単位は秒である。 delay が指定されなければ、最後の起動以降の平均値が 1 回だけ報告される。

count は更新の回数である。 count が指定されず、 delay が指定されている場合は、 count のデフォルトは無限回になる。

-d はディスクの統計を表示する (2.5.70 以降が必要)。

-p の後にパーティション名を付けると、 詳細な統計を表示する (2.5.70 以降が必要)。

-S の後に k, K, m, M を付けると、 出力を 1000, 1024, 1000000, 1048576 バイト単位に切り替える。

-V スイッチを指定すると、バージョン情報を表示する。

VM モードにおけるフィールドの説明

"Procs"

b: 割り込み不可能なスリープ状態にあるプロセス数

"Memory"

swpd: 仮想メモリの量。
free: 空きメモリの量。
buff: バッファに用いられているメモリの量。
cache: キャッシュに用いられているメモリの量。
inact: アクティブでないメモリの量 (-a オプション)。
active: アクティブなメモリの量 (-a オプション)。

"Swap"

si: ディスクからスワップインされているメモリの量 (/s)。
so: ディスクにスワップしているメモリの量 (/s)。

"IO"

bi: ブロックデバイスから受け取ったブロック (blocks/s)。
bo: ブロックデバイスに送られたブロック (blocks/s)。

"System"

in: 一秒あたりの割り込み回数。クロック割り込みも含む。
cs: 一秒あたりのコンテキストスイッチの回数。

"CPU "

これらは CPU の総時間に対するパーセンテージである。

us: カーネルコード以外の実行に使用した時間 (ユーザー時間、nice 時間を含む)。
sy: カーネルコードの実行に使用した時間 (システム時間)。
id: アイドル時間。Linux 2.5.41 以前では、IO 待ち時間を含んでいる。
wa: IO 待ち時間。Linux 2.5.41 以前では、0 と表示される。


ディスクモードにおけるフィールドの説明

"Reads"

total: 成功した読み込みの総数
merged: グループ化された (結果として 1 つの I/O となった) 読み込みの数
sectors: 読み込みに成功したセクタ数
ms: 読み込みに使用した時間 (ミリ秒)

"Writes"

total: 成功した書き出しの総数
merged: グループ化された (結果として 1 つの I/O となった) 書き出しの数
sectors: 書き出しに成功したセクタ数
ms: 書き出しに使用した時間 (ミリ秒)

"IO"

cur: 実行中の I/O
s: I/O に使用した時間 (秒)

ディスクパーティションモードにおけるフィールドの説明

reads: このパーティションに発行された読み込みの総数
read sectors: このパーティションから読み込まれた総セクタ数
writes : このパーティションに発行された書き出しの総数
requested writes: このパーティションへの書き出し要求の総数



SLAB モードにおけるフィールドの説明

cache: キャッシュ名
num: 現在アクティブなオブジェクトの数
total: 利用可能なオブジェクトの総数
size: 各オブジェクトのサイズ
pages: 少なくとも 1 つのアクティブなオブジェクトがあるページの数
totpages: 確保 (allocate) された総ページ数
pslab: slab 当りのページ数

注意

vmstat には特別な権限は必要ない。

これらの報告は、システムのボトルネックを突き止める作業の 手助けをするものである。 Linux の vmstat は、自分自身は実行プロセスとしての勘定に入れない。

Linux のブロックは、今のところ全て 1024 バイトである。 古いカーネルはブロックが 512・2048・4096 バイトであると表示するかもしれない。

procps 3.1.9 以降では、vmstat はデフォルトモードにおいて 単位 (k, K, m, M) をユーザーに選択させる。 デフォルトは K (1024 バイト) である。

vmstat は slabinfo 1.1 を使用する。 間違えていたら修正して欲しい。

ファイル

/proc/meminfo
/proc/stat
/proc/*/stat

関連項目

iostat (1), sar (1), mpstat (1),  ps (1),   top (1),   free (1) 

バグ

デバイスごとのブロック io を表にしない。 またシステムコールの回数を数えない。

著者

Henry Ware <al172@yfn.ysu.edu> と
Fabian Frederick <ffrederick@users.sourceforge.net>
(diskstat, slab, partitions...) によって書かれた。