vmstat:メモリ・CPU・I/Oの全体状況を同時に把握できるサマリーコマンド

vmstat

vmstatコマンドについての概要と詳細

vmstatとは

vmstat(Virtual Memory Statistics)は、Linuxでシステム全体のリソース使用状況、特に仮想メモリ・CPU・プロセス・I/Oの統計を確認できるコマンドラインツールです。性能問題の調査や、システム状態の可視化に役立つ軽量なユーティリティです。

主な用途

  • 仮想メモリの使用状況(swap in/outなど)を把握
  • CPUのアイドル率や待ち時間を確認
  • ブロックI/Oの動作を監視
  • プロセスの状態(実行中・待機中など)を確認
  • パフォーマンスのボトルネック診断

インストール方法

vmstatは多くのLinuxディストリビューションで標準的にインストールされていますが、procpsまたはprocps-ngパッケージに含まれます。

Debian/Ubuntu系
$ sudo apt install procps

Fedora系
$ sudo dnf install procps-ng

基本的な使用例

$ 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 264492  27460 918432    0    0     0     2  101  243  1  1 98  0  0

各列の意味

  • r: 実行待ちのプロセス数
  • b: ブロック状態のプロセス数
  • swpd: 使用中のスワップ(KB)
  • free: 空きメモリ(KB)
  • buff: バッファ使用量
  • cache: ページキャッシュ使用量
  • si / so: スワップイン/スワップアウト(KB/s)
  • bi / bo: ブロックデバイスへの入力/出力(KB/s)
  • in: 割り込み回数
  • cs: コンテキストスイッチ数
  • us / sy / id / wa / st: CPU使用率(ユーザ、システム、アイドル、I/O待ち、ステール)

定期的なモニタリング(秒指定)

$ vmstat 2

2秒ごとに出力を更新し続けます。Ctrl+Cで終了します。

回数指定付きの実行

$ vmstat 1 5

1秒ごとに5回出力されます。

-sオプション(詳細な統計の総計)

$ vmstat -s

累積されたシステム統計を数値形式で一覧表示します。

-dオプション(ディスクI/O統計)

$ vmstat -d

各ディスクの読み書き件数などを表示します。

-mオプション(スラブメモリ統計)

$ vmstat -m

カーネルのスラブメモリ使用状況を表示します。

vmstatと併用されるコマンド

  • top / htop: プロセス単位での詳細な状態を確認
  • iostat: ディスクI/Oの詳細な統計を取得
  • sar: パフォーマンスデータの収集・履歴表示

まとめ

vmstatは、軽量でありながら強力なシステム統計表示ツールです。仮想メモリ、CPU、I/Oの情報を瞬時に把握でき、パフォーマンスの問題解決における初期診断に適しています。定期的なモニタリングやスクリプトとの連携にも向いており、サーバ管理者やLinuxユーザーにとって欠かせないユーティリティです。