【 vmstat 】コマンド――仮想メモリやディスクI/Oの統計情報を表示する:Linux基本コマンドTips(126)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、仮想メモリやディスクI/Oの統計情報を表示する「vmstat」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、仮想メモリやディスクI/Oの統計情報を表示する「vmstat」コマンドです。
vmstatコマンドとは?
「vmstat」は仮想メモリやCPU、ディスクI/Oの統計情報を表示するコマンドです。
デフォルトでは起動(再起動)からの平均値を表示します。「vmstat 1」のように更新間隔を指定することで、リアルタイムに値を表示できます。
vmstatコマンドの書式
vmstat [オプション] [更新の間隔 [回数]]
※[ ]は省略可能な引数を示しています
vmstatの主なオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --active | アクティブ/非アクティブなメモリの量を表示する(カーネル2.5.41以降) |
-d | --disk | ディスクの統計情報を表示する(カーネル2.5.70以降) |
-D | --disk-sum | ディスクの統計情報を1項目1行で表示する(常に1回のみ表示) |
-f | --forks | ブート後のフォーク数を表示する |
-m | --slabs | スラブ情報を表示する(root権限が必要) |
-n | --one-header | 繰り返し表示の際にヘッダを1度だけ表示する(デフォルトでは一定の周期でヘッダを表示する) |
-p パーティション | --partition パーティション | 指定したパーティションの統計を表示する(カーネル2.5.70以降) |
-s | --stats | 1項目1行でメモリの統計情報とイベントカウンタを表示する(常に1回のみ表示) |
-S 単位 | --unit 単位 | 単位をk,K,m,Mで指定する(kは1000、Kは1024、mは1000000、Mは1048576バイト単位) |
-t | --timestamp | タイムスタンプを表示する(オプションなし、「-a」「-d」使用時のみ) ※ |
※Ubuntuでは「-t」を利用できない。
仮想メモリの統計情報を表示する
「vmstat」または「vmstat -a」で、最後に起動(再起動)した時から現在までの統計情報を表示します(画面1)。
コマンド実行例
vmstat(画面1)
(メモリの統計情報を表示する)
vmstat -a
(アクティブ/非アクティブなメモリの統計情報を表示)
表示内容は左列から6種類に分かれていて、順にプロセス(procs)、メモリ(memory)、スワップ(swap)、ブロックI/O(io)、システム情報(system)、CPU(cpu)について示しています。CPUでは総時間を100%として、5種類の動作それぞれに使用した時間をパーセンテージ表示しています。
欄 | 記号 | 数値の意味 |
---|---|---|
procs | r | 実行中と実行待ち中のプロセス数の合計 |
b | 割り込み不可能なスリープ状態にあるプロセス数 | |
memory | swpd | 使用中の仮想メモリの量 |
free | 空きメモリの量 | |
buff | バッファとして使用しているメモリの量 | |
cache | キャッシュに使用している量 | |
inact | アクティブではないメモリの量 ※ | |
active | アクティブなメモリの量 ※ | |
swap | si | ディスクからスワップインしているメモリの量 |
so | スワップアウトしている量 | |
io | bi | HDDのようなブロック型デバイスから受け取ったブロック数 |
bo | ブロック型デバイスに送ったブロック数 | |
system | in | 1秒当たりの割り込み回数 |
cs | コンテクストスイッチの回数 | |
cpu | us | カーネルコード以外の実行(ユーザー時間)に使用した時間(ユーザー時間) |
sy | カーネルコードの実行に使用した時間(システム時間) | |
id | 空転していたアイドル時間 | |
wa | I/O待ち時間 | |
st | 仮想マシンから“盗まれた”時間 ※※ |
※画面1の下部のように「-a」オプション付きで実行した場合、buffとcacheの代わりに表示する
※※仮想環境で実行している際、ホストOSにCPUリソースを割当ててもらえなかった時間の割合。Linux 2.6.11以降。カーネルのバージョンは「uname -r」で表示できる。
vmstatコマンドの出力方向を変えるには、「vmstat -s」を使います。横方向に出力するのではなく、各項目を縦方向に1行ずつで表示します(画面2)。「vmstat」と「vmstat -a」を組み合わせた内容になっていて、起動からの経過時間(boot time)が追加されています。
コマンド実行例
vmstat -s(画面2)
(メモリの統計情報を1項目1行で表示する)
ディスクI/Oの統計情報を表示する
「vmstat -d」でディスクI/Oの統計情報を表示します(画面3)。ここでは、大きく3つの項目があります。成功した読み出し(reads)と書き込み(writes)、実行中のI/Oです。各項目中のmsとsecは合計時間を示しています。
パーティションを指定して統計情報を表示したい場合は「vmstat -p パーティション」とします。表示内容は4つあります。
- 指定したパーティションに発行した読み出しの総数(reads)
- 読み出された総セクタ数(read sectors)
- 書き込みの総数(writes)
- 書き込み要求の総数(requested writes)
なお、「-d」と「-p」を同時に指定することはできません。
コマンド実行例
vmstat -d(画面3)
(ディスクI/Oの情報を表示)
vmstat -p /dev/sda1
(/dev/sda1の情報を表示)
リアルタイムの統計情報を表示する
「vmstat 秒数」または「vmstat 秒数 回数」のように更新の間隔を指定すると、リアルタイムの統計情報を表示します(画面4)。回数を指定しなかった場合は[CTRL]+[C]で終了します。
実行すると、まず“最後に起動(再起動)した時からvmstatコマンド実行開始までの統計情報を表示”し、続いて、“直前の表示から現在までの統計情報”を表示していきます。
コマンド実行例
vmstat 1(画面4)
(メモリの統計情報を1秒間隔で表示)
vmstat -d 1 10
(ディスクI/Oの統計情報を1秒間隔で10回表示)
なお、更新の間隔を指定した場合、端末の行数に応じて一定間隔ごとにヘッダ行(“procs ---”のような行)を表示します。1度だけでよい場合は「-n」オプションを併用してください。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.