Linuxシステムのパフォーマンスを調査するとき、CPUやメモリの使用率に加えて「ディスクI/O(Input/Output)」の状況を把握することは非常に重要です。サーバーが重い、レスポンスが遅いといった問題の原因がディスクの読み書きにある場合も少なくありません。
そんなときに活躍するのが iostat コマンドです。
本記事では、iostatコマンドの基本的な使い方から、出力結果の読み解き方、具体的な活用シーンまで、わかりやすく解説します。
iostatとは?
iostat
は「I/O statistics」の略で、LinuxシステムにおけるCPU使用率と各ブロックデバイス(ディスク)のI/O状況を統計的に表示するコマンドです。
このコマンドは sysstat
パッケージに含まれており、以下のような目的で使用されます。
- ディスクI/Oの負荷状況を把握したいとき
- I/Oボトルネックの原因を調査したいとき
- サーバー性能の傾向を把握したいとき
iostatを活用することで、サーバーのチューニングやトラブルシューティングに役立てることができます。
iostatのインストール方法
多くのディストリビューションでは、iostat
コマンドはデフォルトでインストールされていない場合があります。以下のように sysstat
パッケージをインストールすることで使用可能になります。
Red Hat系(RHEL, CentOS, Rocky Linuxなど)
sudo yum install sysstat
Debian系(Ubuntuなど)
sudo apt-get install sysstat
インストール後に以下のコマンドでバージョン確認ができます。
iostat -V
基本的な使い方
最も基本的な形で iostat
を実行する場合、以下のように入力します。
iostat
これにより、CPU使用率とディスクごとのI/O統計が表示されます。
もう少し詳細に表示したい場合は、以下のようなオプションを付けることで情報が増えます。
iostat -x 1 3
このコマンドは、「拡張表示を1秒間隔で3回」表示します。
出力結果の見方
iostat
の出力は主に2つのセクションに分かれています。
1. CPU使用率
%user %nice %system %iowait %steal %idle
1.50 0.00 0.25 3.45 0.00 94.80
- %user:ユーザープロセスのCPU使用率
- %system:カーネルプロセスの使用率
- %iowait:I/O待ち時間の割合(これが高いとディスクボトルネックの可能性)
- %idle:アイドル時間
2. デバイスごとの統計
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.25 25.00 5.00 25000 5000
- tps:1秒あたりのI/Oリクエスト数(転送数)
- kB_read/s, kB_wrtn/s:毎秒の読み書き速度
- kB_read, kB_wrtn:累積読み書きデータ量
また -x
オプションをつけた場合はさらに以下のような情報も表示されます。
- %util:デバイスの使用率(100%に近いとディスクが限界まで使われている)
- await:1回のI/Oリクエストにかかる平均待ち時間(ミリ秒)
- svctm:サービス時間(I/O処理にかかった平均時間)
よく使うオプション
オプション | 説明 |
---|---|
-x | 詳細なデバイス別情報を表示 |
-d | デバイスの統計情報のみ表示(CPU情報を除く) |
-k | 単位をkBで表示(デフォルトはブロック単位) |
-m | 単位をMBで表示 |
interval count | 指定間隔で統計情報を表示 |
例:10秒ごとに5回表示
iostat -x 10 5
実際の活用シーン
ケース1:サーバーが遅くなった原因調査
サーバーのレスポンスが悪いとき、まず iostat
を実行して %iowait
が高くないかを確認します。%iowait
が10%以上になる場合、ディスクI/Oがボトルネックになっている可能性があります。
ケース2:バックアップの影響を調べる
定期的なバックアップ中に iostat -x
を使って %util
を確認すれば、どのディスクにどれだけ負荷がかかっているかが分かります。
この情報から、バックアップスケジュールの見直しやストレージ分散の判断ができます。
注意点と補足
iostat
の出力は瞬間的なデータではなく、間隔の平均値です。
一度だけで判断せず、繰り返し監視して傾向をつかむことが大切です。- SSD環境では
await
やsvctm
の数値が非常に小さくなるため、判断基準がHDDと異なります。 sysstat
のバージョンにより、出力形式や項目名が異なる場合があります。
他のツールとの比較
ツール | 主な用途 | 特徴 |
---|---|---|
iostat | I/O統計とCPUの監視 | 軽量で基本的な情報が確認できる |
iotop | リアルタイムI/O監視 | プロセス単位でI/O量を確認可能 |
dstat | 多機能なリソース監視 | ディスク・CPU・メモリ・ネットワークなども併せて確認可能 |
iostatは他のツールと組み合わせることで、より深い分析が可能になります。
まとめ
iostat
コマンドは、LinuxシステムにおけるディスクI/OとCPU使用率の状況を可視化するための基本的かつ強力なツールです。
オプションを使い分けることで、詳細なボトルネックの原因調査や、システム全体のパフォーマンス管理に役立ちます。
トラブル時に「とりあえずiostatで見てみよう」となるような、頼れるツールとして、ぜひ習得しておきましょう。