vmstat コマンド

目的

仮想メモリーの統計情報を報告します。

構文

vmstat [ -f ] [ -i ] [ -s ] [ -I ] [ -t ] [ -v ] [ PhysicalVolume ... ] [ Interval [ Count ] ]

説明

vmstat コマンドは、カーネル・スレッド、仮想メモリー、ディスク、トラップ、 CPU のアクティビティーに関する統計情報を報告します。 vmstat コマンドによって生成される報告は、システム・アクティビティーの負荷のバランスを取るのに使用することができます。これらのシステム全体の統計情報 (すべてのプロセッサー間) は、パーセントで表される平均値または合計として計算されます。

vmstat コマンドをフラグなしで呼び出すと、システム始動後の仮想メモリー・アクティビティーの要約が報告されます。 -f フラグを指定した場合には、vmstat コマンドはシステム始動後の fork の数を報告します。 PhysicalVolume パラメーターには物理ボリューム名を指定します。

Interval パラメーターは、各レポートの間隔を秒で指定します。最初のレポートには、システムの始動後の経過時間に関する統計情報が含まれます。後続以降のレポートには、前のレポート以降のインターバルの間に集計された統計情報が含まれます。 Interval パラメーターを指定しなかった場合、vmstat コマンドは報告を 1 回だけ作成して終了します。 Count パラメーターは、Interval パラメーターと一緒に指定する必要があります。 Count パラメーターは、作成する報告の回数とその間隔を指定するものです。 Count パラメーターを指定せずに Interval パラメーターを指定すると、レポートは連続して生成されます。 Count パラメーターに値 0 を指定することはできません。

NAS Gateway 500 System Software では、アイドル状態の CPU のうち、未解決の入出力が開始された CPU のみを wio とマークするように変更されました。この方法では、ごく一部のスレッドが入出力を実行しているだけで、それ以外についてはシステムはアイドル状態という場合に、wio 時間がずっと少なく報告されることになります。例えば、CPU が 4 個のシステムで、1 個のスレッドが入出力を実行している場合、wio 時間は最大 25% になります。 CPU が 12 個のシステムで、1 個のスレッドが入出力を実行している場合なら、wio 時間は最大 8% として報告されます。 NFS クライアントの読み取り/書き込みは VMM によって実行されますが、現在では VMM による入出力完了待ちに biod が費やした時間が入出力待ち時間として報告されるようになりました。

カーネルは、カーネル・スレッド、ページング、および、割り込みのアクティビティーに関する統計情報を保守します。 vmstat コマンドは、perfstat カーネル・エクステンションを使用して、これにアクセスします。ディスク入出力統計情報は、デバイス・ドライバーが保守します。ディスクの平均転送率は、活動時間と転送数の情報から求められます。活動時間 (パーセント) は、報告中にドライブがビジーであった時間から求められます。

下記の例は、vmstat コマンドによって生成される報告の例です。列見出しとその説明についても示します。

kthr: サンプリング間隔中 1 秒当たりのカーネル・スレッドの状態の変化。

r 実行キューに入れられたカーネル・スレッド数。
b 待機キューに入れられたカーネル・スレッド数 (リソースを待機中、入出力を待機中)。

Memory: 仮想メモリーと実メモリーの使用状況に関する情報。仮想ページは、これまでにアクセスされたことがあれば、アクティブであると見なされます。 1 ページは 4096 バイトです。

avm アクティブな仮想ページ。
fre フリー・リストのサイズ。

注: ほとんどの実メモリーはファイルシステムのデータのキャッシュ用に使われます。したがって、フリー・リストのサイズが小さいままであっても、異常ではありません。

Page: ページ・フォールトとページング・アクティビティーに関する情報。この情報は、指定した間隔で平均をとり、1 秒当たりの単位数として表示されます。

re ページャーの入出力リスト。
pi ページング・スペースからページインされたページ数。
po ページング・スペースにページアウトされたページ数。
fr 空きのページ数。
sr ページ置換アルゴリズムによってスキャンされたページ数。
cy ページ置換アルゴリズムによるクロック・サイクル数。

Faults : サンプリング間隔中 1 秒当たりのトラップおよび割り込み率の平均値。

in デバイス割り込み数。
sy システム・コール。
cs カーネル・スレッドのコンテキスト・スイッチ数。

CPU: CPU 時間の使用の内訳。

us ユーザー時間。
sy システム時間。
id CPU アイドル時間。
wa システムに未解決のディスク/NFS 入出力要求があった CPU アイドル時間。

Disk: サンプル・インターバルにおける指定した物理ボリュームへの転送数 (毎秒) を示します。 PhysicalVolume パラメーターを使って、4 つまでの名前を指定することができます。転送統計情報は、指定した各ドライブについて、指定した順番で報告されます。この値は、物理デバイスに対する要求を表します。読み取られた、または書き込まれたデータの数は表しません。複数の論理要求を 1 つの物理要求にまとめることができます。

-I フラグを指定すると、I/O 指向のビューでは、下記の列の変更が表示されます。

kthr p は、列 r および b の隣にも表示されます。
p
秒ごとに実際の物理 I/O を処理したスレッドの数。
page 新規の列 fi および fo は、re および cy 列の代わりに表示されます。
fi
秒ごとのファイル・ページイン。
fo
秒ごとのファイル・ページアウト。

フラグ

注: -f フラグと -s フラグを同時にコマンド行に指定することはできますが、この場合、最初のフラグのみをシステムが受け入れ、2 番目のフラグは無効になります。
-f システム始動後の fork の数を報告します。
-i システム始動後に各デバイスが行った割り込み数を表示します。
-I I/O 指向のビューで、出力の新規の列を表示します。それらは、ヘッダー kthr の下の p、ヘッダー・ページの下の fi および fo (ヘッダー・ページの列 re および cy に代わるもの) です。
-s 合計構造体の内容を標準出力に書き出します。この合計構造体には、システム初期化後に発生したページング・イベントの絶対数が入っています。-s フラグは、-v フラグと一緒でないと使用することができません。以下に、これらのイベントを説明します。
address translation faults
アドレス変換ページ・フォールトが発生した回数です。ページ・フォールトを回復するために入出力が要求されていたかどうかは分かりません。この値には、ストレージ保護ページ・フォールト (ロックの失敗) は含まれません。
page ins
仮想メモリー・マネージャーがページを読み取った回数です。この値は、ページ・スペースおよびファイル・スペースのページインの回数を表します。この値とページアウト統計情報の値を合わせると、仮想メモリー・マネージャーが開始した実入出力の総数が求められます。
page outs
仮想メモリー・マネージャーがページを書き込んだ回数です。この値は、ページ・スペースおよびファイル・スペースのページアウトの回数を表します。この値とページイン統計情報の値を合わせると、仮想メモリー・マネージャーが開始した実入出力の総数が求められます。
paging space page ins
VMM が開始したページング・スペースだけのページインの回数です。
paging space page outs
VMM が開始したページング・スペースだけのページアウトの回数です。
total reclaims
新しい入出力要求を実行しなくても回復できるアドレス変換障害の数です。この状態は、以前 VMM で要求されていたページの、入出力が完了していなかったときに発生します。また、VMM の先読み取りアルゴリズムであらかじめフェッチされていたページが不在の発生したセグメントには見えなかったときや、フリー・リストにあったページが再使用されていなかったときにも発生します。
zero-filled page faults
作業用ストレージで発生し、フレームの割り当てとゼロ埋め込みで回復できるページ・フォールトの数です。
executable-filled page faults
命令のページ・フォールトの数です。
pages examined by the clock
VMM は、クロック・アルゴリズムを使って、疑似 LRU ページ置き換えスキームを実現します。ページは、クロックに検査されることで古く なります。この値は、ページがクロックに検査された回数です。
revolutions of the clock hand
VMM クロック回転数 (つまり、メモリーのスキャン数) です。
pages freed by the clock
実メモリーから解放するために、クロック・アルゴリズムがページを選択した回数です。
 
backtracks
以前のページ・フォールトの回復中に発生したページ・フォールトの回数です。新しいページ・フォールトが先に回復されなければ、初期ページ・フォールトは backtracked になることができません。
lock misses
VMM は、ページが同時にアドレスされないようにロックします。このロックが失敗すると、ページ・フォールトが発生することがあります。この値は、ロックの失敗のために発生したページ・フォールトの回数です。
free frame waits
空きフレームが集められている間に、VMM によってプロセスが待機状態になった回数です。
extend XPT waits
アクセス中のセグメントのコミットのために、VMM によってプロセスが待機状態になった回数です。
pending I/O waits
ページイン入出力が完了するまでに、VMM によってプロセスが待機状態になった回数です。
start I/Os
VMM が開始した読み取りまたは書き込み入出力要求の回数です。この値は、ページインとページアウトの合計と等しくなります。
iodones
VMM の各入出力要求が完了した回数です。
CPU context switches
CPU コンテキスト・スイッチ (新しいプロセスのディスパッチ) の回数です。
device interrupts
ハードウェア割り込みの回数です。
software interrupts
ソフトウェア割り込みの回数です。ソフトウェア割り込みは、ハードウェア割り込みと似た機械命令で、いくつかの状態を保存してからサービス・ルーチンに分岐します。ソフトウェア割り込み命令には、システム・コール・ハンドラー・ルーチンへ分岐するシステム・コールが用意されています。
traps
NAS Gateway 500 System Software では維持されません。
syscalls
システム・コールの回数です。
-t vmstat の出力の各行の隣に、タイム・スタンプを表示します。このタイム・スタンプは、HH:MM:SS フォーマットで表示されます。

注 : -f-s、または -i フラグが指定された場合、タイム・スタンプは表示されません。
-v 仮想メモリー・マネージャーが保守するさまざまな統計情報を標準出力へ書き込みます。 -v フラグは、-s フラグを指定したときのみ使用できます。
memory pages
4 KB ページの数で表した実メモリーのサイズ。
lruable pages
置換されたと見なされる 4 KB ページの数。この数には、VMM 内部ページに使用されるページや、カーネル・テキストのピンされた部分に使用されるページは含まれません。
free pages
空き 4 KB ページの数。
memory pools
メモリー・プール数を指定するチューニング・パラメーター (vmo を使用して管理される)。
pinned pages
ピンされた 4 KB ページの数。
maxpin percentage
ピン可能な実メモリーのパーセンテージを指定するチューニング・パラメーター (vmo を使用して管理される)。
minperm percentage
実メモリーのパーセンテージで指定するチューニング・パラメーター (vmo を使用して管理される)。これは、ファイル・ページを再ページ・アルゴリズムから保護するポイントの最高値を指定します。
maxperm percentage
実メモリーのパーセンテージで指定するチューニング・パラメーター (vmo を使用して管理される)。これは、ページ・スチール・アルゴリズムが、ファイル・ページのみをスチールするポイントの最小値を指定します。
numperm percentage
現在ファイル・キャッシュが使用しているメモリーのパーセンテージ。
file pages
現在ファイル・キャッシュが使用している 4 KB ページの数。
compressed percentage
圧縮されたページに使用されるメモリーのパーセンテージ。
compressed pages
圧縮されたメモリー・ページの数。
numclient percentage
クライアント・ページ数が占めるメモリーのパーセンテージ。
maxclient percentage
クライアント・ページに使用できるメモリーの最大パーセンテージを指定するチューニング・パラメーター (vmo を使用して管理される)。
client pages
クライアント・ページの数。
remote pageouts scheduled
クライアント・ファイルシステムにスケジュールされたページアウトの数。
-v (-v で表示される統計情報の続き):
pending disk I/Os blocked with no pbuf
pbuf が使用可能でないためにブロックされた、保留中のディスク入出力要求の数。 pbuf は、論理ボリューム・マネージャー・レイヤーで入出力要求を保留するために使用される、ピンされたメモリー・バッファーです。
paging space I/Os blocked with no psbuf
psbuf が使用可能でないためにブロックされた、ページング・スペース入出力要求の数。 psbuf は、仮想メモリー・マネージャー・レイヤーで入出力要求を保留するために使用される、ピンされたメモリー・バッファーです。
filesystem I/Os blocked with no fsbuf
fsbuf が使用可能でないためにブロックされたファイルシステム入出力要求の数。 fsbuf は、ファイルシステム・レイヤーで入出力要求を保留するために使用される、ピンされたメモリー・バッファーです。
client filesystem I/Os blocked with no fsbuf
fsbuf が使用可能でないためにブロックされたクライアント・ファイルシステム入出力要求の数。 NFS (ネットワーク・ファイルシステム) および VxFS (Veritas) がクライアント・ファイルシステムです。 fsbuf は、ファイルシステム・レイヤーで入出力要求を保留するために使用される、ピンされたメモリー・バッファーです。
external pager filesystem I/Os blocked with no fsbuf
fsbuf が使用可能でないためにブロックされた外部ページャー・クライアント・ファイルシステム入出力要求の数。 JFS2 が外部ページャーのクライアント・ファイルシステムです。 fsbuf は、ファイルシステム・レイヤーで入出力要求を保留するために使用される、ピンされたメモリー・バッファーです。

  1. ブート以後の統計情報の要約を表示するには、下記のように入力します。

    vmstat
  2. 2 秒間隔で 5 つの要約を表示するには、下記のように入力します。

    vmstat 2 5

    最初の要約には、ブートしてからの時間の統計情報が入ります。

  3. 論理ディスク scdisk13 と scdisk14 の統計情報を含む、ブート以後の統計情報の要約を表示するには、下記のように入力します。

    vmstat scdisk13 scdisk14
  4. fork 統計情報を表示するには、下記のように入力します。

    vmstat  -f
  5. 種々のイベントのカウントを表示するには、下記のように入力します。

    vmstat -s
  6. vmstat の出力の各列の横にタイム・スタンプを表示するには、下記のように入力します。

    vmstat -t
  7. 新規の I/O 指向のビューに列の代替セットを表示するには、下記のように入力します。

    vmstat -I
  8. 使用可能なすべての VMM 統計情報を表示するには、下記のように入力します。
    vmstat -vs

関連情報