VSphere 4.0 での SQL Server のパフォーマンス

VSphere 4.0 での SQL Server のパフォーマンス

VMWare 環境で説明できないパフォーマンスの問題が発生しており、どなたか助けていただけることを願っています。データベース バックエンドを使用する Web アプリケーションがあります。物理ノードと仮想ノードの間に Windows 2003 R2 上の SQL 2005 クラスター セットアップがあります。物理サーバーは両方とも同一の 2950 で、2x Xeaon x5460 Quad Core CPU と 64GB のメモリがあり、そのうち 16GB が OS に割り当てられています。すべてのクラスター ディスクに iSCSI San を使用しています。問題は、クラスター ノードに CPU を追加する繰り返しのストレス テストでアプリケーションを使用すると、物理ノードが 1 pCPU から 8 pCPU に拡張され、パフォーマンスが継続的に向上することです。Vsphere を実行しているノードをテストすると、仮想であるため予想どおり 12% のパフォーマンス低下が見られますが、物理ノードと同様に 1 vCPU から 4 vCPU に拡張できますが、これを超えるとパフォーマンスが低下し、8 vCPU に達すると 4 vCPU のときよりもパフォーマンスの数値が悪くなります。繰り返しになりますが、両方のノードはハードウェア、ゲスト OS、SQL 構成などに関してまったく同じ構成になっており、システム上のテスト以外のトラフィックはありません。仮想サーバーには他の VM がないため、リソースの競合は発生しません。VMWare に問い合わせましたが、SQL プロセッサ アフィニティの設定など、役立つものの各ボックスに同じ効果があり、結果がまったく変わらないような提案は一切ありませんでした。VSphere に関する VMWare の SQL チューニング ガイドをすべて確認しましたが、何のメリットもありませんでした。どうか助けてください。

答え1

具体的な裏付けがないので、回答として入力するのは躊躇しますが、これがあなたが見ている問題の原因である可能性があります。私は以前に聞いたことがあります(そしてこれVMWare の CPU スケジューリングは、VM に複数の CPU がある場合に困難になるという主張は、このページである程度裏付けられています。CPU が 1 つの VM の場合、スケジュールする必要があるのは 1 つのホスト プロセッサだけです。ただし、VM に複数の CPU がある場合、VMWare は VM で使用できるように複数のプロセッサをスケジュールする必要があり、時間がかかることがあります。VM の CPU の数が増えるほど、スケジュールがますます困難になり、プロセッサ時間を割り当てるのが難しくなるため、VM のパフォーマンスは実際に低下します。

また、前回のコメントを読み返しましたが、最近 vSphere の競合で問題が発生しています。もう 1 つ試してみるとよいのは (まだ試していない場合)、この VM のリソース割り当てを増やすことです。現時点ではこの VM が唯一の VM ですが。

答え2

かなりすばらしいセットアップですね ;-)

vCPU は最大容量まで使用されていますか? CPU 待機、CPU 準備完了、CPU 使用率のグラフは何を示していますか?

VM に追加する vCPU が増えるほど、vCPU を管理して物理 CPU にマッピングするためにホスト システムで発生するオーバーヘッドが増加します。ある時点では、単に vCPU を追加するだけでは VM のパフォーマンスが向上しなくなります。

iSCSI SAN にパフォーマンスの問題があるかどうかを確認しましたか? グラフのディスク読み取りおよびディスク書き込み要求、そしてもちろんディスク読み取りおよび書き込み速度を確認し、それらを物理クラスター メンバーのものと比較します。

おそらく、いくつかの価値観があなたを正しい方向に導いてくれるでしょう。

答え3

明確にするために、8 コア (2 x 4) ESX ボックスを使用して 1 つの 8 vCPU VM をホストしていますが、5 番目以降の vCPU で実際のパフォーマンスの向上は見られません。同じホストを物理 SQL ボックスとして使用しない理由を教えていただけますか。約 5 ~ 6 千ドル相当の Enterprise Plus ライセンスを、メリットがないように見えるもの (パフォーマンスの問題が見られなかったとしても) に使用しています。申し訳ありませんが、理解できません。

関連情報