iostat の見方

出力例

$ iostat -x 30
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.87    0.01    2.53    0.49    0.00   96.11

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.05    16.03  0.36 13.74     5.77   238.22    17.31     0.15   10.39   0.98   1.38
sda1              0.00     0.00  0.00  0.00     0.00     0.00    15.53     0.00   12.81  11.47   0.00
sda2              0.05    16.03  0.36 13.74     5.77   238.22    17.31     0.15   10.39   0.98   1.38

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.15    0.00    1.73    0.58    0.00   96.53

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    13.70  0.00 11.93     0.00   205.07    17.18     0.17   14.13   1.18   1.40
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00    13.70  0.00 11.93     0.00   205.07    17.18     0.17   14.13   1.18   1.40

カラムの意味

  • r/s: 秒間の読み込み回数
  • w/s: 秒間の書き込み回数
  • avgrq-sz: 平均 I/O サイズ
  • avgqu-sz: 平均待ち行列
  • await: レスポンスタイム。I/O を実施していない待ち時間を含む。
  • svctm: サービスタイム。1回のI/Oに要する時間 (ミリ秒)。
  • %util: 使用率(ビジー率)
IOPS (秒間のI/O回数) = (r/s + w/s)
svctm = 1000(ミリ秒) / IOPS
%util = IOPS * svctm / 1000 (ミリ秒)

見方

  • IOPS(r/s + w/s)が増えて、平均待ち行列長(avgqu-sz)とレスポンスタイム(await)が大きくなっている場合、I/O 回数が増えて待ちが発生していると考えられる。
  • 平均 I/O サイズ(avgrq-sz)が変わらないのにサービスタイム(svctm)が大きくなった場合、I/O性能が劣化しており、ストレージに問題があると考えられる。