vmstat は、仮想メモリ・プロセス・CPU・入出力などのシステム全体の状態を要約して表示します。一定間隔で繰り返し表示でき、ボトルネックの一次切り分けに便利です。
実務では、負荷調査中の「CPU待ち」「スワップ発生」「IO詰まり」などの兆候確認に使います。
構文(Syntax)
vmstat [OPTIONS] [DELAY [COUNT]]
# ディスク/パーティション統計
vmstat -d
vmstat -D
vmstat -p PARTITION
DELAYは更新間隔(秒)、COUNTは回数。DELAYを省略すると1回だけ表示します。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-a | メモリ列を active/inactive で表示(通常は buff/cache) | vmstat -a 1 |
-f | 起動以来の fork 合計を表示 | vmstat -f |
-m | Slab の統計を表示(環境により非推奨/未実装あり) | vmstat -m |
-n | 見出し(ヘッダ)を最初だけ表示 | vmstat -n 1 |
-s | 各種カウンタ/メモリ統計を一覧(スナップショット) | vmstat -s |
-t | タイムスタンプ列を付与 | vmstat -t 2 5 |
| `-S {k | K | m |
-w | 幅広い表示(カラムの折返しを抑制) | vmstat -w 1 |
-d | ディスク統計(デバイスごと) | vmstat -d |
-D | ディスクの総計を表示 | vmstat -D |
-p PART | パーティション PART の統計 | vmstat -p sda1 |
-V | バージョン表示 | vmstat -V |
実行例
スナップショットを1回表示(基本)
説明:現在の概況を1度だけ表示します。
コマンド
vmstat
出力例(抜粋)
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 0 123456 7890 456789 0 0 1 2 100 200 3 1 95 1 0
r:実行待ちプロセス、b:割り込み不可のスリープsi/so:スワップイン/アウト、wa:IO待ちCPU時間 など
1秒間隔で5回監視(リアルタイム確認)
説明:変化を追って傾向を掴みます。
コマンド
vmstat 1 5
出力例:1秒ごとに5行出力。
ヘッダは最初だけ(ログ取り向け)
説明:ログ解析しやすいようヘッダ再表示を抑えます。
コマンド
vmstat -n 2 10
主要カウンタを一覧(合計値で把握)
説明:スワップ発生の有無や割り込み/コンテキストスイッチ総数などを一望。
コマンド
vmstat -s | head
出力例(例)
163840 K total memory
120000 K used memory
43840 K free memory
...
ディスク全体の統計を確認
説明:デバイス/パーティションのIO統計を概観します。
コマンド
vmstat -D
vmstat -d
vmstat -p sda1
エラー例:不正なオプション
説明:存在しないオプションを渡すとエラー終了します。
コマンド
vmstat --no-such-option
echo $?
出力例(例)
vmstat: unrecognized option '--no-such-option'
1
関連コマンド
top/htop:プロセス別の利用状況を対話的に確認。iostat:デバイス/パーティションごとのIO詳細を時系列で表示。mpstat:CPU全体/コア別の使用率を表示。free:メモリ消費のスナップショットを表示。sar:各種リソースの統計を収集・保存し時系列で分析。
備考
- 取得元:多くの列は
/proc(/proc/meminfo,/proc/stat,/proc/vmstatなど)から集計されます。コンテナ環境や権限設定で値が限定されることがあります。 - 環境差:本稿は Linux の
procps-ng系vmstatを前提。BusyBox 版は対応オプションが少なく、BSD系のvmstatは項目や意味が異なります。 - 読み方のコツ:
rがコア数を大きく超え続ける → CPU飽和の疑い、waが高止まり → IO待ち、si/soが増える → メモリ逼迫の兆候、などを他コマンドと突き合わせて判断します。 - 単位指定:
-Sで KiB/MiB などに切替可能。ログに残すときは単位を明示しましょう。

コメント