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