古典的な開発者とシステム管理者の戦いがあり、共有SQLサーバーのディスクにIOの問題がありますが、システム管理者は容量が不足していると言っていますまったく到達しました。
私が指摘できたのは、SQLサーバーの平均ディスクキュー長が非常に長いことです。平均キュー長は平均5で、定期的に10から15に急上昇します。2.5を下回ることはありません。
システム管理者は、ディスクが6つのディスクのストライプであり、キューの長さがスピンドルの2倍の量よりも長い場合、定義上悪いため、これは問題ではないと言っています。したがって、彼の式は6 * 2 = 12であり、平均5よりも低くなっています。
彼の推論は正しいですか? Azureディスクをスピンドルと見なすことができますか?最小5の一定の平均キュー長は表示ではありませんか?
編集:結局のところ、ディスクは大きなボトルネックでした。データベースを別のデータベースサーバーに移動した後、アプリケーションは再びスムーズに実行されます。
あなたは単一のメトリックに少し焦点を合わせています!
単一のコンポーネントのボトルネックを診断することは、完全な説明を提供する1つのカウンターで終わることはめったにありません。
SQL Serverのパフォーマンスの問題を診断するためにperfmonを使用するための かなりの数素晴らしいガイド があります。
残念ながら、管理者は正しい可能性があります。選択するカウンターは、実際に基盤となるハードウェアによって異なります。ただし、Azureが6ディスクRAIDに基づいていることを示すドキュメントは見つかりません。それで、おそらく他のカウンターに焦点を合わせますか?
しかし、最終的な推奨事項として。あなたの唯一の兆候が平均だった場合。ディスクキューの長さ、システム管理者はおそらく正しいでしょう。
ディスクの問題であることが確実な場合は、いつでも作成を試すことができます ストレージスペース。
Azureはかなり新しいですが、これが私の提供内容です。
スパンするAzureディスクが多いほど、パフォーマンスが向上します。これは事実です。しかし、方程式についてはよくわかりません。いずれにせよ、あなたは間違った木を吠えていると思います...
Azureは、IOPSや1秒あたりの最大読み取り/書き込みなどのメトリックに人為的な制限を課しているため、キューの長さは、確認する必要のある数少ないメトリックの1つにすぎません。
この質問 性質はあなたのものと似ています。 Azure SQLパフォーマンスの記事 への役立つリファレンスもあります。 Microsoftのベストプラクティスに従うようにすることで、パフォーマンスを向上させることができます。
使用するディスクの数をさらに増やすことが役立つかどうかはわかりません。私が見たところ、成長は直線的ではありません。 6ディスクのIOPSは3000(6x500)であると予想されるかもしれませんが、おそらく2000に近いでしょう。
DS(SSD)層に移動することが、単一のVMから求めている種類のパフォーマンスを取得する唯一の方法である可能性があります。Azureインスタンスの制限の概要は次のとおりです。 https://Azure.Microsoft.com/en-gb/documentation/articles/virtual-machines-size-specs/
最後に、アプリケーションのパフォーマンスを向上させる最善の方法は、I/Oへの依存を減らすことです。可能な限りキャッシュします。より多くのメモリを備えたインスタンスを試すことができます。