
私は、SQL Server Express (Sage Line 50 Manufacturing の一部) を実行する仮想マシンで作業しています。詳細は次のとおりです。
物理サーバー(ホストマシン)
- Intel Xeon Quad Core 2.1GHz
- 4GB RAM
- VMDK イメージは RAID-5 500GB SATA ドライブ (7200RPM) に保存されています
- Ubuntu 10.04 Server 64 ビットを実行
- VMware Server 2
仮想マシン
- Windows Small Business Server 2003
- 2 つの vCPU と 2 GB の RAM を割り当て
- 100 GB の事前割り当て済みフラット VMDK ファイルを使用
私が抱えている問題は、SQL Server で実行されるプロセスが CPU を集中的に使用するという点です。仮想マシンに移行した古い物理サーバーでは、このプロセスが両方の CPU コアを使用するため、sqlserver.exe プロセスは各 CPU コアで 100% 実行されます。仮想マシンでは、2 つの CPU コアのうち 1 つしか使用されていないようで、プロセスの実行速度が大幅に遅くなります。
質問
方法はあるか力SQL Server (sqlserver.exe プロセス) は両方の CPU コアを使用し、それらの間で負荷を分散しますか? これは、プロセスが両方のコアを使用できるようにするために変更する必要がある VMware 設定ですか?
答え1
仮想マシン上の MS SQL Express データベースについてはあまり経験がありませんが、MS SQL Express Edition のハードウェア制限に遭遇しただけだと思います。
物理サーバーには 2 つのコアを持つ 1 つの CPU が搭載されていると想定します。MS SQL Express 2008 (2005 もそうだと思います) は、1 つの物理 CPU のみをサポートしますが、複数のコアをサポートします。
VM は各 vCPU を追加のコアとしてではなく、単一の CPU として認識します。そのため、sqlserver.exe プロセスは 1 つの vCPU に制限されます。
答え2
vSphere では (これは VMware サーバーには適用されないかもしれませんが、この回答に偶然出会った人には役立つかもしれません)、VM に提示される「ソケットあたりのコア数」を変更して、マルチコア (またはハイパースレッディング) CPU を正確に反映できます。
こちらの記事をご覧ください:http://www.virtualizationbuster.com/?p=132