iostat はブロックデバイス(ディスク/パーティション)の入出力統計と CPU 使用率をスナップショットまたは一定間隔で表示するツールです。
実務では、ボトルネックの切り分け(%util の飽和、await の遅延、読み書きバランスなど)に使います。
構文(Syntax)
iostat [OPTIONS] [INTERVAL [COUNT]]
# 例
iostat # 1回だけ出力(起動~現在の平均)
iostat 1 5 # 1秒間隔で5回
iostat -x 2 # 2秒間隔で拡張統計
iostat -p sda 1 3 # sda とそのパーティション
- 最初のレポートは「起動から現在までの平均」、2回目以降は「直前の出力からの平均」。
-yで初回レポートを抑止できます。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-c | CPU 統計のみ表示 | iostat -c 1 |
-d | デバイス統計のみ表示 | iostat -d 1 |
-x | 拡張デバイス統計(r/s, w/s, rkB/s, wkB/s, avgqu-sz, await, %util など) | iostat -x 1 |
| `-p [DEVICE | ALL]` | DEVICE とそのパーティションを表示。ALL で全デバイスのパーティション |
-k | 単位を KiB/s に固定 | iostat -k -x 1 |
-m | 単位を MiB/s に固定 | iostat -m 1 |
-t | 各行にタイムスタンプを付与 | iostat -t -x 2 |
-y | 初回レポートを出さない(直近間隔のみを見るとき) | iostat -y 1 10 |
-z | 活動が 0 のデバイス行を省略 | iostat -z -x 1 |
-w | フィールド幅を広く(折返しにくく) | iostat -w -x 1 |
-V | バージョン表示 | iostat -V |
-h | ヘルプ表示 | iostat -h |
実行例
基本:現在の概況を1回表示
説明:CPU とデバイスの平均値を1度だけ表示します。
コマンド
iostat
出力例(抜粋)
avg-cpu: %user %nice %system %iowait %steal %idle
2.15 0.00 0.98 0.41 0.00 96.46
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.20 12.3 45.7 123456 456789
1秒間隔で拡張統計を監視
説明:待ち時間(await)やキュー長(avgqu-sz)、忙しさ(%util)を確認します。
コマンド
iostat -x 1
出力例(抜粋)
Device r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await %util
sda 1.00 5.00 8.00 40.00 16.0 0.5 12.0 10.0 12.5 7.2
await高止まり → デバイス側の遅延を示唆。%util≈ 100% → デバイス飽和の疑い。
パーティション単位での状況確認
説明:sda 本体と sda1/sda2... の内訳を併せて見ます。
コマンド
iostat -p sda 2 3
直近間隔のみを計測(初回レポート抑止)
説明:起動以来の平均を除き、純粋に周期ごとの変化だけを取りたいとき。
コマンド
iostat -y -x 1 5
単位を MiB/s で表示
説明:帯域感をつかみやすくします。
コマンド
iostat -m -x 2
エラー例:存在しないデバイスを指定
説明:未存在のデバイスを -p に渡すと失敗します。
コマンド
iostat -p sdZ 1
echo $?
出力例(例)
iostat: sdZ: No such file or directory
1
関連コマンド
vmstat:メモリ/プロセス/CPU/IO を横断的に要約。mpstat:CPU(全体/コア別)の使用率を時系列で表示。pidstat:プロセス/スレッド単位のCPU・IOなどの統計。sar:各種統計を収集・保存し、後から分析。lsblk/lsblk -f:デバイスとパーティションの構成確認に。
備考
- 前提:Linux の
sysstatパッケージに含まれるiostatを想定(BusyBox/BSD とは列や挙動が異なります)。 - 初回行の意味:初回は「起動~現在の平均」のため、短周期監視では
-yを付けて除外するのが定石。 - 単位:既定は「ブロック/秒」または「kB/s」(ビルド・ディストリに依存)。明示したい場合は
-k/-mを使用。 - 読み方のコツ:
%util≈ 100%(飽和)、avgqu-sz増加(キュー滞留)、await高騰(遅延)を相互に見ます。ワークロードの性質(順次/ランダム、読み/書き)にも注意。 - 権限と環境:多くは一般ユーザーで可。コンテナや仮想環境ではホストの統計が見えない/制限される場合があります。

コメント