現在、非常に能力の低いVMがあり、より良い仕様のAzure VMに移行することを提案しています。問題は、Azure VMのスペックが高くても、Azure VMが元のVMよりもはるかに遅いことです。
元のサーバーは、2 GBのメモリを備えた2コアVMであり、Webサーバーでもあります。Microsoft SQL Server Web Edition 2008 R2を実行しており、このサーバーは他の目的で使用されるため、SQL Serverの最大サーバーメモリを512MBに制限する必要がありました。
新しいサーバーは、データベースサーバーのみである、7 GBのメモリを備えた4コアVMです。Microsoft SQL Server Standard Edition 2008 R2を実行しており、SQL Serverが使用できるメモリの量を制限していません。
これは、ミラーリング環境でセットアップされた2つのサーバーの1つですが、テストを実行しているデータベースがミラーリングされていません。このサーバー上の他のデータベースは、現時点ではトラフィックをあまり取得していません(実際、これらのテストを実行している間、アクティビティモニターは他のDBでアクティビティを示していません)。
Azure VMの問題はハードドライブがネットワークリソースであるため、スローダウンの原因になることは承知していますが、IO統計に物理的な読み取りが0の場合でも、速度は遅くなります。
ディスクのストライプ化(ドライブごとに2つのディスク)、ログとデータファイルを別々のドライブに配置することなど、Azure VMのこのページのチューニングアドバイスに従いました。
私が行っていないことは、ページ圧縮を有効にし、データベースの自動拡張を制限し、SQLサーバーのエラーログとトレースファイルのディレクトリをデータディスクに移動することだけです。私は古いサーバーでもそれをしていません。
古いサーバーではこの調整は行われず、ログとデータファイルはストライプ化されていない同じドライブ上にあります。
現在のサーバーのデータベースは65 GB(45データと20ログ)であり、新しいサーバーに転送するには少し大きすぎるため、より小さなDB(6データと13.5ログ)でテストしています。
古いサーバーでの結果CPU time = 1311 ms, elapsed time = 1057 ms.
と新しいサーバーでCPU time = 1281 ms, elapsed time = 2525 ms.
の結果は1回だけですが、結果は私が通常見ているものを表しています。
新しいサーバーの経過時間は常にCPU時間よりもかなり長いようです。それは問題ですか、それを引き起こしている原因を追跡するために私ができることはありますか?
このサーバーが古いサーバーよりも高速であるように見える場合に、サーバーの動作が遅い理由を調べるために、他にどのような手順を実行できますか?