トップ回答者
Avg. Disk Queue Lengthの閾値について

質問
-
お世話になっております。
Widnowsのパフォーマンスモニターについて伺わせていただきます。
ディスクがボトルネックとなっている期間を測定するため、「Avg. Disk Queue Length」といカウンターを使用しようと思っているのですが、
こちらの閾値をご教示頂きたく存じます。
参考ページ<http://technet.microsoft.com/ja-jp/library/cc748731.aspx>には、
「 RAID アレイ中の利用可能な物理ディスクあたり 2 未満が適正です。」
「RAID 0+1 のドライブに 10 の物理ディスクがある場合は、そのアレイの利用可能な物理ディスク数は 5 です。この例では、ディスク待ち行列の長さは、10 を超えてはなりません。」
という記述がありますが、「使用可能な物理ディスク」というものの判断方法がわかりません。
例えば、RAID5ならば1枚がパリティ計算用の領域として確保され、残りのディスクが実際の容量に追加されるディスクとなります。
ディスク5枚でRAID5を構成した場合は、実際の容量はディスク4枚分となりますが、この場合の「使用可能な物理ディスク」とは
ディスク4枚分のことを指すのでしょうか。
そして、それが正しかった場合、「 RAID アレイ中の利用可能な物理ディスクあたり 2 未満が適正です。」というわけですから、
ディスク5枚のRAID5の場合は、Avg. Disk Queue Lengthの閾値は4×2で8、ということになるのでしょうか。
以上です。
御回答宜しくお願い致します。
2014年8月27日 6:08
回答
-
パリティの計算は RAID カード側で行われて OS からは透過的なものですので、HDD 5 台で RAID 5 を組んでいるときは 4 台と考えれば良いかと思います。
最近の HDD は 1 台の中に複数のディスクが入っていますが、ディスクの枚数は考慮しなくて良いかと思います。なお、あげている URL は SQL Server に関するページですので、その点ご注意ください。
Windows Server 2008 上の SQL Server ということであれば問題ありませんが。そうであれば SQL Server のフォーラム http://social.technet.microsoft.com/Forums/ja-JP/home?forum=sqlserverja がありますので、そちらの方が内容としては適切かと思いますので、その旨記載ください。
フォーラムオペレーターの方がカテゴリ移動をして下さるかと思います。MCITP(Database Developer/Database Administrator)
2014年8月29日 15:29
すべての返信
-
パリティの計算は RAID カード側で行われて OS からは透過的なものですので、HDD 5 台で RAID 5 を組んでいるときは 4 台と考えれば良いかと思います。
最近の HDD は 1 台の中に複数のディスクが入っていますが、ディスクの枚数は考慮しなくて良いかと思います。なお、あげている URL は SQL Server に関するページですので、その点ご注意ください。
Windows Server 2008 上の SQL Server ということであれば問題ありませんが。そうであれば SQL Server のフォーラム http://social.technet.microsoft.com/Forums/ja-JP/home?forum=sqlserverja がありますので、そちらの方が内容としては適切かと思いますので、その旨記載ください。
フォーラムオペレーターの方がカテゴリ移動をして下さるかと思います。MCITP(Database Developer/Database Administrator)
2014年8月29日 15:29 -
naginoさん
お世話になっております。投稿者です。
ご返信ありがとうございます。
ご指摘にもありましたが、提示させていただいたURLはSQL一般のものでしたが、
私が疑問に思っていたのはSQLに限らないサーバー一般の話でした。申し訳ありません。
サーバー一般の場合は、SQLと閾値が変わるのでしょうか。
マイクロソフト公式ではありませんが、以下のような情報があります。
<http://itpro.nikkeibp.co.jp/article/Watcher/20060328/233629/>
「パフォーマンスモニタにて、オブジェクト:「LogicalDisk」(もしくは物理ディスクI/Oとして「PhysicalDisk」)カウンタ:「Avg. Disk Queue Length」を追加ししばらく様子を観察します。この値が常に2以上だとディスクI/O処理要求で常時待ち発生している状態ですのでディスクI/Oがボトルネックであることが判明します。パフォーマンスモニタにて、オブジェクト:「LogicalDisk」(もしくは物理ディスクI/Oとして「PhysicalDisk」)カウンタ:「Avg. Disk Queue Length」を追加ししばらく様子を観察します。この値が常に2以上だとディスクI/O処理要求で常時待ち発生している状態ですのでディスクI/Oがボトルネックであることが判明します。」
上記記述を見る限りでは、ディスクの枚数やRAIDレベル関係なしに、「Avg. Disk Queue Length」の値の閾値は2である、
というように読めるのですが、一般的にはどのように閾値を判断するのが適切なのでしょうか。
上記のページのとおり、RAIDレベルやディスクの枚数関係なしに2とするのか、
それともSQL Serverのページで示されているように、「RAID アレイ中の利用可能な物理ディスク × 2 」
とするのが適切なのか判然としません。
また、以下のような情報もあります。
<http://a-programmer.blog.so-net.ne.jp/2006-12-05>
「スピンドル数+2より大きい値 → ディスクI/O処理要求で待ち発生」
こちらに従えば、たとえばディスク6枚構成のRAID1+0だった場合は、
スピンドル数(3) + 2 = 5
が閾値になるように思えます。
このように様々な情報があり一向に判断がつかないのですが、
一般的に閾値として扱うべきなのはどのような数値なのでしょうか。
大変お手数ですが、ご存知でしたらご教示いただきたく存じます。
何卒宜しくお願い致します。
以上です。
2014年9月8日 5:35 -
>サーバー一般の場合は、SQLと閾値が変わるのでしょうか。
>一般的にはどのように閾値を判断するのが適切なのでしょうか。
負荷の特性が変わるので、変わりますね。
>このように様々な情報があり一向に判断がつかないのですが、
これは、記事が書かれた時期によって変わりますので、参考にすべき記事を選ぶ必要があります。
というのも、ハードウェアの性能や、OS やミドルウェアが要求する性能が、時期やバージョンによって変化していくものですので仕方ないかと思います。
また、先にも書いたとおりサーバーの機能や役割によっても負荷の特性が変わるため、そちらも考慮して参考にする記事を選ばれる必要があると思います。ですので、「一般」といわれてもなんとも言いかねるところがあります。
個人的な経験則としては、特に高負荷である用途以外では OS から見える Disk 1 本あたりで Avg. Disk Queue Length が 2 を超える状態が用途から考えられるより目立つようであれば Disk IO の不足と判断していますが、文書となっている根拠があるわけではありません。
MCITP(Database Developer/Database Administrator)
2014年9月9日 1:29