2014年3月15日土曜日

iostatの勘違い(redhat系)

正しく表示内容を理解していなかったといえばそれだけだけど・・・。
iostatの%utilのディスクビジー率。この値が大きければディスクが忙しいというイメージ。
だいたいあっていそうなので真剣に向き合わないで放置してましたが・・・。

ディスクビジーってなんだよ。って思うと不信感が出てきます。

%util は結局のところ、ディスクIOがどのくらい処理されていたかを示しているだけでこいつに振り回される必要はないと気づいた。
性能を表しているわけでもないし、この値が大きくても慌ててはいけないと。

ディスクIOがどのくらい処理されていたか、ということは、iostatなどの値で考えると次のようになる。

  svctm * ( r/s + w/s ) / 単位時間  (単位時間とは、iostatなどの情報の採取間隔と考えておいてください)
  参考:http://d.hatena.ne.jp/yohei-a/20110711/1310396665

この式を眺めていると気づくのは、%utilの値が大きくなる場合がいくつかあります。

  1. svctm(IOリクエストの平均処理時間(msec))が長い。
  2. r/s(1秒間あたりのread発行回数) か w/s(1秒間あたりのwrite発行回数)が多い
上記のいづれかが原因で%utilが大きな値を示しているかが重要です。
1msecで処理できているw/sが1000回実行された場合と、1secで処理できているw/sが1回実行された場合。どちらも%utilは同じ値です。
落ち着きましょう。(自分)

iostatには、他にもありますが、それはまた次の機会で

0 件のコメント:

コメントを投稿