iostat コマンドによるディスク・パフォーマンスの評価

評価は、システムのワークロードのピーク期間中、 または入出力遅延を最小にする必要がある重要なアプリケーションの実行中に、interval パラメーターを指定して iostat コマンドを実行することによって開始します。

次のシェル・スクリプトは、測定すべき入出力があるように、ラージ・ファイルのコピーをフォアグラウンドで実行している間に、 バックグラウンドで iostat コマンドを実行します。
# iostat 5 3 >io.out &
# cp big1 /dev/null
AIX® オペレーティング・システムは、ディスク・アクティビティーの履歴を維持します。 ディスク入出力のヒストリーが使用不可にされていると、iostat コマンドを実行した場合に以下のメッセージが表示されます。
Disk history since boot not available.

The interval disk I/O statistics are unaffected by this.
ディスク入出力ヒストリーを使用可能にするには、コマンド行から smit chgsys と入力し、 「ディスク入出力ヒストリーの継続的保守」 フィールドから true を選択します。
以下の例は、問題をトラブルシューティングするためにはシステム上にあるすべてのデータを検討する必要があることを示しています。
  1. 次のコマンドは、3 つのデータ・サンプルをシステム上に保管します。 io.out ファイルには 3 つのディスクが記録されています。 これらのサンプルは 5 秒間隔で収集されます。
    # iostat -T 5 3 > /tmp/io.out &
    
    # cp bigfile /dev/null
    
    System configuration: lcpu=4 drives=4 ent=1.00 paths=3 vdisks=2
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              1.2          9.6                0.6   1.4   98.0      0.0   0.0    2.7  13:26:46
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:26:46
    hdisk1            0.0       0.0       0.0          0         0  13:26:46
    hdisk0            0.0       0.0       0.0          0         0  13:26:46
    hdisk2            0.0       0.0       0.0          0         0  13:26:46
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.2          3.6                0.3  13.8   75.1     10.8   0.2   16.8  13:26:51
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:26:51
    hdisk1            0.0       0.0       0.0          0         0  13:26:51
    hdisk0           62.8   52428.8     205.4     262144         0  13:26:51
    hdisk2            0.0       0.0       0.0          0         0  13:26:51
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.0          0.0                0.5   1.5   97.9      0.1   0.0    2.8  13:26:56
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:26:56
    hdisk1            0.0       0.0       0.0          0         0  13:26:56
    hdisk0            0.4       0.8       0.2          0         4  13:26:56
    hdisk2            2.6      33.6       7.8          0       168  13:26:56
    注: 時間間隔を指定せずに iostat コマンドを実行すると、出力には、現行値ではなく、最後のシステム・リブート以降のシステム・データの要約が示されます。
    • 最初の間隔と 3 番目の間隔は、3 つのディスクがほとんどアイドルであったこと、および CPU 使用率を示しています。これは、ttyレポートに追加します。
    • 2 番目の間隔は、cp コマンドを使用して生成されたアクティビティーを示しています (これは、このテストのために開始されました)。 このアクティビティーは、両方の CPU アクティビティーで表示できます (ttyレポート) を表示します。13.9% sysCPU およびディスク・レポートにも表示されます。 cp コマンドは、この間隔での実行に 3.14 秒かかりました。 このレポートでは、2 番目の間隔は、以下について 62.8 % を示しています。hdisk0tm_act メトリックの下のディスク。 この例は、次のことを意味します。hdisk0時間間隔 (5 秒) の 62.8 % の間、ディスクが使用中でした。 cp が、hdisk0 に対するディスク入出力を生成する唯一のプロセスであるとすれば、cp コマンドは 5 秒間隔の 62.8%、すなわち 3.14 秒かかったことになります。これが、cp コマンドの実行にかかった合計時間です。
  2. 次のコマンドは、サンプル間で 2 秒間隔を持つ 5 つのデータ・サンプルをシステム上に保管します。 io.out2 ファイルには 3 つのディスクが記録されています。
    # iostat -T 2 5 > /tmp/io2.out &
    
    # cp bigfile /dev/null
    System configuration: lcpu=4 drives=4 ent=1.00 paths=3 vdisks=2
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              3.0         24.0                0.4   0.8   98.8      0.0   0.0    1.8  13:29:51
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:29:51
    hdisk1            0.0       0.0       0.0          0         0  13:29:51
    hdisk0            0.0       0.0       0.0          0         0  13:29:51
    hdisk2            0.0       0.0       0.0          0         0  13:29:51
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.5          1.0                0.2   8.2   85.5      6.1   0.1   10.1  13:29:53
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:29:53
    hdisk1            0.0       0.0       0.0          0         0  13:29:53
    hdisk0           39.5   30464.0     120.5      60928         0  13:29:53
    hdisk2            0.0       0.0       0.0          0         0  13:29:53
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.0          0.0                0.2  21.5   62.9     15.4   0.3   25.7  13:29:55
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:29:55
    hdisk1            0.0       0.0       0.0          0         0  13:29:55
    hdisk0          100.0   83712.0     327.0     167424         0  13:29:55
    hdisk2            0.0       0.0       0.0          0         0  13:29:55
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.0          8.0                1.3   7.2   87.5      4.0   0.1   10.4  13:29:57
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:29:57
    hdisk1            0.0       0.0       0.0          0         0  13:29:57
    hdisk0           20.9   16898.0      66.5      33792         4  13:29:57
    hdisk2           10.4      82.0      19.0          0       164  13:29:57
    
    tty:      tin         tout    avg-cpu: % user % sys % idle % iowait physc % entc  time
              0.0          0.0                0.2   0.6   99.2      0.0   0.0    1.3  13:29:59
    
    Disks:         % tm_act     Kbps      tps    Kb_read   Kb_wrtn  time
    cd0               0.0       0.0       0.0          0         0  13:29:59
    hdisk1            0.0       0.0       0.0          0         0  13:29:59
    hdisk0            0.0       0.0       0.0          0         0  13:29:59
    hdisk2            0.0       0.0       0.0          0         0  13:29:59
  • 最初の間隔と 5 番目の間隔は、3 つのディスクがほとんどアイドル状態であったこと、および CPU 使用率がアイドル状態であることを示しています。これは、ttyレポートに追加します。
  • 2 番目の間隔は、cp コマンドを使用して生成されたアクティビティーを示しています (これは、このテストのために開始されました)。 cp コマンドは、この間隔での実行に 3.14 秒かかりました。 このレポートでは、2 番目の間隔は、以下について 39.5 % を示しています。hdisk0tm_act メトリックの下のディスク。 3 番目と 4 番目の間隔では、以下についてそれぞれ 100% と 20.9 % が表示されます。hdisk0tm_act メトリックの下のディスク。 これは次のことを意味します。hdisk03 番目の間隔の間に時間間隔 (2 秒) の 100% の間ディスクが使用中でした。hdisk04 番目の間隔で時間間隔 (2 秒) の 20.9 % の間ディスクが使用中でした。
どちらの例でも、%tm_act 変数のみが、ディスクがビジーだったことを示しています。 パフォーマンス問題の評価に %tm_act 変数は使用できません。 問題をトラブルシューティングするには、iostat -D コマンドを実行するなど、他のオプションを検討しなければならない可能性があります。 このコマンドは、実際のサービス時間 (読み取りと書き込みの両方) を提供し、システム上のディスクに関するキューイング情報も提供します。