vmstat 出力の読み方とボトルネック発見の実践ガイド

コマンド構文と頻出オプション

vmstat [オプション] [インターバル秒] [回数]

# 3 秒ごとに 10 回出力
vmstat 3 10

代表的なオプション
-a : 非アクティブ/アクティブメモリ量を表示(buff/cache の代わり)
-s : イベント別のメモリ統計サマリー
-d : 各デバイスの I/O 統計
-p <デバイス> : 指定デバイスの詳細 I/O

デフォルト出力フィールドの意味

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  987654  43210  56789    0    0     0     0  123  234  2  1 97  0  0
セクション項目解説
procsr実行待ちのプロセス数。CPU コア数を超えると CPU 不足。
bI/O 待ちでスリープ中のプロセス数。高値はディスク負荷。
memoryswpdスワップ使用中容量 (KB)。増加傾向はメモリ逼迫。
free未使用物理メモリ (KB)。
inact非アクティブリストのページ数 (-a オプション時)。
activeアクティブリストのページ数 (-a オプション時)。
swapsiスワップからの読み込み量 (KB/s)。
soスワップへの書き込み量 (KB/s)。
iobiブロックデバイスからの読み込み (KB/s)。
boブロックデバイスへの書き込み (KB/s)。
systemin1 秒あたりの割り込み数。
cs1 秒あたりのコンテキストスイッチ数。過剰は CPU ロス。
cpuusユーザ空間での CPU 使用率 (%)。
syカーネル空間での CPU 使用率 (%)。
idアイドル率 (%)。
waI/O 待ち率 (%)。高値はディスクボトルネック。
st仮想化環境での「盗まれた」CPU 時間 (%)。

ボトルネック判定の実践チェックリスト

  • メモリ不足:free が極端に少なく、si/so がゼロでない
  • CPU 飽和:r が論理 CPU 数を超え、id が 5 % 以下
  • I/O 遅延:b と wa が 10 以上、bi/bo が急増
  • スケジューラ負荷:cs が 1 万/秒を超える

応用テクニック

デバイス別 I/O 詳細の確認

$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda    12345   1234  987654   12345  54321   4321 1234567   23456      2    345
nvme0n1 5678    890  456789    6789  12345   1234  654321    9876      0    123
  • merged:I/O スケジューラが結合したリクエスト数
  • cur:現在ディスクキューにあるリクエスト数

メモリ統計サマリー

$ vmstat -s
      16384256 K total memory
       1234567 K used memory
        987654 K active memory
        432109 K inactive memory
       8765432 K free memory
        123456 K buffer memory
        654321 K swap cache
       2097148 K total swap
             0 K used swap
       2097148 K free swap

他ツールとの使い分け

ツール強み補足
top / htopプロセス単位のリアルタイム情報画面更新が重い
sar過去ログの時系列解析sysstat パッケージ必要
iostat -xディレイテンシやサービスタイムデバイス性能の深掘りに
vmstat軽量・スクリプト連携しやすい瞬時のシステム全体像把握

vmstat の値はあくまで瞬間値であるため、連続観測や他ツールとの相関を見ることでより正確なボトルネック特定が可能になる。

タグ: vmstat Linux性能監視 システムトラブルシューティング メモリチューニング I/Oボトルネック

5月18日 19:51 投稿