2013/11/12

iostat 見方

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.48    0.00    0.19    0.01    0.00   99.33

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.22    0.00    0.17     0.11     3.13    18.77     0.00    0.23   0.14   0.00
fioa              0.00     0.00    0.00   55.95     0.00   540.47     9.66     0.01    0.06   0.07   0.41


niceーー>実行優先度を変更したユーザプロセスによるCPUの使用率
%iowait: I/O終了待ち時間(I/O進行中でその終了を待っている時間)=>これは重要!!!
Blk_read/s:1秒間のディスクの読み込み量(ブロック/秒)
Blk_wrtn/s:1秒間のディスクの書き込み量(ブロック/秒)
Blk_read:ディスクの読み込み量(ブロック数)
Blk_wrtn:ディスクの書き込み量(ブロック数)

rrqm/s:1秒間デバイスへマージされた読み込みリクエスト数
wrqm/s:1秒間デバイスへマージされた書き込みリクエスト数
r/s:1秒間の読み込みリクエスト数
w/s:1秒間の書き込みリクエスト数
rsec/s:1秒間の読み込みセクタ数(デバイスから)
wsec/s:1秒間の書き込みセクタ数(デバイスへ)
rkB/s:1秒間の読み込みキロバイト(KB)数(デバイスから)
wkB/s:1秒間の読み込みキロバイト(KB)数(デバイスへ)
avgrq-sz:デバイスへのIOリクエストの平均サイズ(セクタ)
avgqu-sz:デバイスへのIOリクエストのキュー(待ち行列)の平均サイズ
await:デバイスへのIOリクエストの平均待ち時間(ミリ秒)。キューにいる時間+処理時間。
svctm:デバイスへのIOリクエストの平均処理時間(ミリ秒)。
%util:デバイスへのIOリクエスト期間CPUの使用率(デバイス関連部分)
===>この数字は継続的に 100% に近い場合は、物理ディスクの性能がボトルネックになっていると考えられます。



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性能が劣化しており、ストレージに問題があると考えられる。
vmstatの場合,I/O待ちをしているプロセス数を表す「b」列にCPUスレッド数以上の値が出ていると,I/Oがボトルネックになっている可能性があります。
iostatの場合,I/O使用率を表す「%util」列値が100に近い値となっているディスクでは,I/Oが詰まっている可能性があります。