効果的なI/O 監視は、健全で応答性の高い Linux システムを維持するために不可欠です。このタスクのための強力なコマンドラインツールがiostatであり、CPU とディスクアクティビティの両方に関する詳細なレポートを提供します。
iostatコマンドを実行すると、システムのパフォーマンスメトリックのスナップショットが生成されます。
pete@icebox:~$ iostat
Linux 3.13.0-39-lowlatency (icebox) 01/28/2016 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.13 0.03 0.50 0.01 0.00 99.33
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.17 3.49 1.92 385106 212417
出力は主に 2 つのセクションに分かれています。それらを詳しく見ていきましょう。
CPU メトリックの理解
最初のレポートは CPU 使用率の詳細を示し、プロセッサが時間をどのように費やしているかについての洞察を提供します。
- %user: ユーザーレベル(アプリケーション)プロセスを実行するために費やされた CPU 時間の割合。
- %nice: 変更された(nice)優先度を持つユーザーレベルプロセスに費やされた CPU 時間の割合。
- %system: システムレベル(カーネル)プロセスを実行するために費やされた CPU 時間の割合。
- %iowait: CPU が保留中のディスク I/O リクエストの完了を待っている間にアイドル状態であった時間の割合。高い値はストレージのボトルネックを示している可能性があります。
- %steal: 仮想化環境において、ハイパーバイザーが別の仮想プロセッサをサービスしている間に、仮想 CPU が実際の CPU を待機していた時間の割合。
- %idle: CPU がアイドル状態であり、ディスク I/O リクエストを待っていなかった時間の割合。
ディスク使用率の分析
2 番目のレポートは、デバイスレベルのI/O 監視に焦点を当てており、ストレージデバイスとの間でデータがどのように転送されているかを示します。
- tps: デバイスに対して発行された 1 秒あたりの転送回数。転送は I/O リクエストであり、複数の論理リクエストが 1 つのリクエストにまとめられることがあります。
- kB_read/s: デバイスから読み取られたデータ量(キロバイト/秒)。
- kB_wrtn/s: デバイスに書き込まれたデータ量(キロバイト/秒)。
- kB_read: 前回の再起動以降にデバイスから読み取られたキロバイトの合計数。
- kB_wrtn: 前回の再起動以降にデバイスに書き込まれたキロバイトの合計数。