最近、Hyper-V 2008R2ベアメタルを実行しているサーバーを購入しました。サーバーにはハイパースレッディングを備えた2つのクアッドコアIntelXeonプロセッサが搭載されているため、正しく理解していれば、16コアになります。 Hyper-V内で、4つの仮想プロセッサを搭載したWindows Server 2008R2を実行する仮想マシンを作成しました。プロセッサ設定画面には、これがシステム全体の処理能力の25%に相当することが示されています。これは、残りの75%を仮想OSが利用できないことを意味しますか?他のいくつかの仮想マシンを実行しますが、これはSQL Server用であり、可能な限り多くの馬力を投入したいと考えています。
VCPUは、単一の物理CPUにのみマップできます。 4つの物理CPUを使用して、4倍高速な単一のvCPUを作成することはできません。それが機能する方法ではありません。
Hyper-Vは、4つのvCPUをa VM(最後に確認しました)に割り当てることに制限されています。かなりのCPUパワーが必要な場合は、物理的に行ってください。仮想化のオーバーヘッドを何かに追加しても意味がありませんthatCPUを集中的に使用し、そもそも並列処理を行います。
また、Holocrypticが指摘しているように、VMに4つのvCPUを割り当てると、Hyper-Vが4つの物理CPUコアを取得して実行するまで、そのVMは実行できません。構成によっては、大きな障害になる可能性があります(たとえば、4つのvCPU VMが多数ある6コアマシンの場合、一度に1つだけが実行され、他の2つのコアは常に実行されます本質的に未使用)。Jake Oshins によると、これはHyper-Vのどのバージョンにも当てはまりませんでした。彼は、Hyper-VはCPUにギャングスケジューリングを使用しないと述べています。他のほとんどすべてのハイパーバイザーと同じように。したがって、1つの物理CPUコアが使用可能な場合、Hyper-Vはそれを使用してマルチCPUVMを実行できます。 (前述のとおり、NUMAパーティショニングのため、Hyper-Vはその時点で利用可能なすべての物理コアを使用しない場合があります)
補足:SQLは、そもそも、SQLに投入できるすべてのコアを必ずしも使用するわけではありません。それ本当には、それを何に使用しているか、および負荷の並列化の程度によって異なります。
うん、クリスが言ったこと。 Hyper-V仮想マシンで4つを超えるCPUが必要な場合は、仮想で2つのSQLサーバーを作成してデータベースを分散するか、物理的に使用します。 SQLサーバーのライセンスによっては、ライセンスコストを増やすことなく、仮想(同じ物理ホスト上)にSQLサーバーを追加できる場合がありますが、詳細については、SQL仮想ライセンスのホワイトペーパーを参照してください。
また、4つの仮想CPUでSQLのCPU能力が不足している場合は、アプリが深刻に使用されているか、SQLコマンドの記述が不適切であることに同意します。
約4 CPUコア制限:
VMの構成ファイルセクション:
[プロセッサ] [カウントタイプ=”整数”] 16 [/カウント]
これで16コアのCPUができました。
PDATE:スクリーンショットが必要なようです
このガイドに従ってください
http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/
vMのVHDディレクトリの「仮想マシン」ディレクトリの下にvm xml構成ファイルを見つけることができます。構成ファイルはVMのIDの下で名前が付けられます下記リンクは参考です。
参照: VM xml構成ファイル
管理者権限で開いたnotepad/notepad ++を使用してVM xml構成ファイルを編集してください