データセンターでLinuxをご利用なら、その強力さをご存知でしょう。Linuxには、ほとんどの管理者が使うことのないほど多くのツールが搭載されています。中には、あまり知られていないものもありますが、システムの円滑な運用を維持するために重要な役割を果たします。
そのようなツールの一つがiostatコマンドです。iostatコマンドは、システムI/Oデバイスの負荷を監視するために使用されます。iostatは、デバイスがアクティブになっている時間と平均転送速度の関係を観察することでこれを実現します。このコマンドを簡単に実行するだけで、システムの入出力負荷を最適化するのに役立つレポートが表示されます。
iostatをインストールして使用してみましょう。
インストール
Elementary OSへのインストール手順を説明します。iostatコマンドは他のディストリビューションでもインストール可能ですので、必要に応じてインストールコマンドを変更してください。
iostatはsysstatパッケージの一部であり、実際には特定のツールセット(iostatなど)によって読み込まれるファイルです。iostatをインストールするには、次のコマンドを実行します。
sudo apt install sysstat
インストールが完了すると、iostat の使用を開始できるようになります。
使用法
iostatコマンドを引数なしで発行すると、システム上の各パーティションの CPU 使用率と I/O 統計に関する情報が表示されます (図 A )。
図A
このコマンドを使うと、各デバイスの読み取りと書き込みの合計量と1秒あたりの量を確認できます。私の例では、/dev/sdaへの書き込みは1秒あたり155.52KB、起動以降の合計書き込み量は54659628KB、1秒あたりの読み取り量は13.09KB、起動以降の読み取り量は4601755KBです。この値を特定のSSDドライブの平均値と比較し、それに応じて対処することができます。このコマンドはCPU統計も表示するため、CPUがシステムに問題を引き起こしているかどうかを把握できます。
これらの詳細をより読みやすい形式で確認したい場合は、iostat -mコマンドを発行してください。このコマンドは、統計情報をKB単位ではなくMB単位で表示します。このコマンドの出力を図Bに示します。
図B
特定のデバイスの統計情報だけを表示したい場合はどうすればよいでしょうか?例えば、問題が疑われるデータドライブがあるとします。特定のデバイスのみを表示するコマンドはiostat -p DEVICEです(DEVICE はドライブ名(sda や sdb など))。このオプションと -m オプションを組み合わせてiostat -m -p sdbとすると、単一のドライブの統計情報をより読みやすい形式で表示できます(図C)。
図C
上記のコマンドは、そのデバイス上のすべてのパーティションの統計情報を表示します。特定のパーティションの統計情報を表示したい場合は、iostat -m -p sdb2のようなコマンドを使用します。
拡張統計
拡張統計が必要な場合は、次のように -x 引数を指定してコマンドを発行できます。
iostat -x -p sdb
上記のコマンドは、レポートにいくつかの重要な統計情報を追加します。特に重要な統計情報の一つはavgqu-szです。この統計情報は、デバイス上でキューに登録されている、または処理中の操作の数を示します。この統計情報は1桁台で推移するはずですが、時折2桁台に急上昇しても問題ありません。
報告されたその他の拡張統計は次のとおりです。
- avgqu-sz – デバイスに発行された要求の平均キューの長さ。
- await – デバイスに対して発行された I/O 要求が処理されるまでの平均時間 (ミリ秒単位)。
- r_await – デバイスに発行された読み取り要求が処理されるまでの平均時間 (ミリ秒単位)。
- w_await – デバイスに発行された書き込み要求が処理されるまでの平均時間 (ミリ秒単位)。
- svctm – このフィールドは信頼できないため無視してください。sysstat から削除されるはずでした。
- %util – デバイスに対して I/O 要求が発行された経過時間の割合。
iostat を活用するもう一つの便利な方法は、デバイスの統計情報を5秒ごとに表示し続けるオプションを指定して実行することです。これはデバイスのトラブルシューティングに便利です。デバイス sdb の統計情報を5秒ごとに表示するコマンドは、iostat -m -p sdb 5です。出力は5秒ごとに更新されます(図D)。
図D
このコマンドの出力をエスケープするには、[Ctl]+[c]の組み合わせを入力します。
読み続ける
iostatコマンドの使い方は以上です。この便利なツールの使い方について詳しくは、man iostatコマンドでマニュアルページをご覧ください。iostatは、Linuxデータセンターのサーバーをスムーズに稼働させるのに非常に役立つツールです。