iostat コマンドは、物理ディスクがアクティブな時間を平均転送速度と比較して観察することにより、システム入出力デバイスの負荷を監視するために使用されます。この情報を使用してシステム構成を変更し、物理ディスクとアダプター間の入出力負荷のバランスを改善できます。
以下は、引数なしで iostat コマンドを実行した場合の出力例です。
# iostat
Linux 3.10.0-514.2.2.el7.x86_64 (geeklab) 11/07/2017 _x86_64_ (128 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.36 0.00 1.07 0.24 0.00 98.32
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 17.26 8.80 242.60 3795176 104664988
sdb 0.52 5.66 36.17 2440242 15603348
sdc 0.02 0.34 0.00 147313 0
sdd 0.01 0.09 0.00 39527 0
sde 0.01 0.10 0.00 41189 0
sdf 0.01 0.09 0.00 39025 0
..... 最初の行には、システムの Linux カーネル バージョン、ホスト名、現在の日付、アーキテクチャ、および CPU の数が表示されます。
iostat ユーティリティ レポートには次のセクションがあります。
– CPU 使用率
– デバイス使用率
CPU 使用率レポート
次の 2 行は、CPU 統計を表示します。マルチプロセッサ システムの場合、CPU 値はすべてのプロセッサのグローバル平均です。列は次のように定義されます:
| %user | ユーザー レベルでアプリケーションを実行中に使用される CPU の割合 |
| %nice | ナイス プライオリティでユーザー レベルで実行中に使用される CPU の割合 |
| %system | システム (カーネル) レベルでの実行中に使用される CPU の割合 |
| %iowait | システムに未処理のディスク I/O 要求がある間に CPU がアイドル状態だった時間の割合 |
| %盗む | ハイパーバイザーが別の仮想プロセッサにサービスを提供している間に、仮想 CPU が意図しない待機に費やされた時間の割合 |
| %idle | CPU (または CPU が) アイドル状態で、システムに未処理のディスク I/O 要求がなかった時間の割合 |
デバイス使用状況レポート
例の残りの行は、物理デバイスごとまたはパーティションごとの統計を表示します。ブロック デバイスとパーティションを引数として iostat コマンドに含めることができます。引数が含まれていない場合、レポートには、カーネルが統計を持っているすべてのデバイスが表示されます。列は次のように定義されます:
| デバイス | /dev ディレクトリにリストされているデバイスまたはパーティション名 |
| tps | デバイスに発行された 1 秒あたりの転送 (I/O 要求) の数 |
| kB_read/s | 1 秒あたりのキロバイト数で表される、デバイスから読み取られたデータの量。 |
| kB_wrtn/s | 1 秒あたりのキロバイト数で表される、デバイスに書き込まれたデータの量 |
| kB_read | 読み取られた合計キロバイト数 |
| kB_wrtn | 書き込まれた総キロバイト数 |
iostat コマンドにさまざまなオプションを指定すると、より詳細な統計を含めることができます。コマンドライン オプションの一部を以下に示します:
| -c | CPU 使用率レポートを表示します。 |
| -d | デバイス使用率レポートを表示します。 |
| -m | 統計をメガバイト/秒で表示します。 |
| -x | 拡張統計を表示します。 |
interval および count 引数を使用して、複数のレポートを異なる間隔で実行できます。次の例では、すべてのデバイスについて 2 秒間隔で 6 つのレポートを表示します:
# iostat –d 2 6
iostat コマンドの例
例 1 – iostat コマンド
CPU と入出力デバイスの使用率の統計を表示するには、次のコマンドを使用します:
# iostat
Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.90 0.00 2.60 1.76 2.87 86.87
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
xvda 68.90 947.14 1117.86 340222 401546
xvdf 2.76 55.51 0.00 19940 0 iostat からの最初の出力は、システムの起動以降の情報の合計です。 iostat コマンドの実行間隔は指定されていないため、デフォルトでシステムの起動以降の概要情報が表示されます。
例 2 – 間隔を指定した iostat
統計の傾向を確認したり、一定の間隔で統計を継続的に表示したりするには、間隔を指定して iostat コマンドを使用します。たとえば、統計を 5 秒ごとに報告するには:
# iostat 5
間隔の数を指定して、統計が生成される回数を制限することもできます。たとえば、iostat コマンドを 5 秒間隔で 3 間隔のみで実行するには:
# iostat 5 3
例 3 – CPU 統計のみを表示する
システムの CPU 統計のみを表示するには、「-c」を使用します。 ” iostat のオプション
# iostat -c
Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.64 0.00 1.20 0.78 1.34 94.03 例 4 – ディスク統計の表示
iostat で使用できるもう 1 つの便利なオプションは、「-d」です。 」 システムのディスク統計のみを表示します。
# iostat -d Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 28.82 389.03 465.87 340222 407421 xvdf 1.14 22.80 0.00 19940 0
例 5 – 拡張統計の表示
iostat で拡張統計を表示するには、「-x」を使用します " オプション。たとえば、
# iostat -x
Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.52 0.00 0.71 0.45 0.83 96.50
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvda 0.03 1.57 11.38 6.75 242.60 288.58 58.59 0.17 9.13 0.91 23.00 0.42 0.76
xvdf 0.00 0.00 0.70 0.00 14.10 0.00 40.16 0.00 2.84 2.84 0.00 2.15 0.15 例 6 – さまざまなオプションの組み合わせ
上記の例のいくつかのオプションをいつでも組み合わせることができます。これにより、以下の例に示すように、2 秒間隔で 3 間隔で拡張ディスク使用率レポートを表示できます。
# iostat -xdt 2 3 Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) 03/16/2018 04:57:55 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.03 1.45 10.47 6.23 223.11 265.50 58.53 0.15 9.12 0.91 22.93 0.42 0.70 xvdf 0.00 0.00 0.65 0.00 12.96 0.00 40.16 0.00 2.84 2.84 0.00 2.15 0.14 03/16/2018 04:57:57 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 xvdf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03/16/2018 04:57:59 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 xvdf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
ここで、
-t – インターバルのタイムスタンプを表示