【Linux入門】iostat -xdでディスクの健康診断!初心者向けに項目を徹底解説+フィールド番号付き一覧
Linuxで「なんか重い…」と感じたとき、CPUやメモリだけでなく、ディスクI/Oの状態もチェックすべきポイントです。そんなときに役立つのが iostat コマンド。
この記事では、以下のような iostat -xd の出力を例に、各項目の意味と読み方を初心者向けにわかりやすく解説します。さらに、cut コマンドなどで使えるようにフィールド番号付きの一覧も掲載しています。
📦 iostatとは?
iostat は、CPU使用率やブロックデバイス(HDD, SSD, LVMなど)の I/O 統計を表示するコマンドです。特に -xd オプションを使うと、ディスクの詳細な状態が見えてきます。
iostat -xd
各項目の意味(初心者向け)
📊 各項目の意味(初心者向け)
| 項目名 | 説明 |
|---|---|
Device |
デバイス名(例: sda, dm-0 など) |
r/s |
秒あたりの読み込み要求数(Read requests per second) |
w/s |
秒あたりの書き込み要求数(Write requests per second) |
rkB/s |
秒あたりの読み込みデータ量(Read kilobytes per second) |
wkB/s |
秒あたりの書き込みデータ量(Write kilobytes per second) |
rrqm/s |
マージされた読み込み要求数(Read requests merged per second) |
wrqm/s |
マージされた書き込み要求数(Write requests merged per second) |
%rrqm |
読み込み要求のうちマージされた割合(rrqm/s ÷ (rrqm/s + r/s)) |
%wrqm |
書き込み要求のうちマージされた割合(wrqm/s ÷ (wrqm/s + w/s)) |
r_await |
読み込み要求の平均待ち時間(ms) |
w_await |
書き込み要求の平均待ち時間(ms) |
aqu-sz |
平均同時 I/O キューサイズ(どれだけ詰まっているか) |
rareq-sz |
平均読み込み要求サイズ(rkB/s ÷ r/s) |
wareq-sz |
平均書き込み要求サイズ(wkB/s ÷ w/s) |
svctm |
平均サービス時間(1回のI/O処理にかかる時間、ms) |
%util |
デバイスの使用率(100%に近いとI/Oが詰まっている可能性) |
🔢 【おまけ】フィールド番号付き項目一覧(iostat -x の出力)
| フィールド番号 | 項目名 | 説明 |
|---|---|---|
| 1 | Device |
デバイス名(例: sda, nvme0n1 など) |
| 2 | rrqm/s |
マージされた読み込み要求数(Read requests merged per second) |
| 3 | wrqm/s |
マージされた書き込み要求数(Write requests merged per second) |
| 4 | r/s |
秒あたりの読み込み要求数(Read requests per second) |
| 5 | w/s |
秒あたりの書き込み要求数(Write requests per second) |
| 6 | rkB/s |
秒あたりの読み込みデータ量(Read kilobytes per second) |
| 7 | wkB/s |
秒あたりの書き込みデータ量(Write kilobytes per second) |
| 8 | avgrq-sz |
平均要求サイズ(Average request size) |
| 9 | avgqu-sz |
平均キューサイズ(Average queue size) |
| 10 | await |
平均待ち時間(Average wait time, ms) |
| 11 | r_await |
読み込み要求の平均待ち時間(ms) |
| 12 | w_await |
書き込み要求の平均待ち時間(ms) |
| 13 | svctm |
平均サービス時間(Service time per I/O, ms) |
| 14 | %util |
デバイス使用率(Utilization percentage) |
🛠 cutコマンド使用例
例えば、%util(フィールド16)だけを抽出したい場合:
iostat -xd | awk 'NR>2' | tr -s ' ' | cut -d ' ' -f16
※ tr -s ' ' は連続スペースを1つに詰めるための処理です。
🔍 実際の読み方とポイント
✅ %util をチェック
100%に近い → ディスクが詰まっている可能性
今回は 0.09 → ほぼアイドル状態
✅ r_await, w_await をチェック
読み込みが遅いと r_await が高くなる
今回は 14.94ms → やや遅めだが許容範囲
✅ aqu-sz が高いとキューが溜まっている
今回は 0.00 → 詰まりなし
✨ まとめ
iostat -xd はディスクの状態を把握するのに超便利
%util, await, aqu-sz を見れば「詰まり具合」がわかる
初心者でも「なんか重い…」の原因を探る第一歩に!