回答:
この答えの情報はもう正しくありません。厳密な共同スケジューリングの時代には正しいことでしたが、もはやそうではありません。
私は繁栄のために以下の回答を続けていますが、現代のハイパーバイザーにとって正確であることに頼らないでください。
あなたは必要があります決して仮想マシンに仮想CPUとして、すべてのコアを割り当てません。
VMがCPU時間を要求する場合、VMWare はすべてのvCPU を割り当てるか、vCPU を割り当てないでください。
つまり、4コアシステムでは、4つのコアすべてを割り当てると、ホストまたはゲストのいずれか一方にのみプロセッサ時間を割り当てることができ、両方を同時に割り当てることはできません。
これにより、両方の環境でパフォーマンスが完全に損なわれます。
奇数のコア(たとえば、3)を自由に割り当ててください。奇妙に感じますが、それは完全に正当なオプションです。
通常、(n / 2)vCPU(あなたの場合は2)を超える割り当ては行いませんが、通常、大きな影響なしに膨大な数のvCPUを割り当てることができる12から32コアのサーバーにコアを割り当てます。
Nateが述べたように、VMがほとんどシングルスレッドプロセスの実行を提供する限り、複数のコアを割り当てる理由はほとんどありません。
ただし、より多くのコア(マルチスレッドプログラム、多くの並列プログラム、..)の恩恵を受けることができる方法で使用する場合、ストーリーはより複雑になります。以前は、VMにCPUの半分を使用することをお勧めします。これは常に最適とは限りません。
確認する唯一の方法は、ベンチマークを実行することです。理由はわかりませんが、Core2 Quadシステム(VT-xサポート、ネストされたページング、..)では、実際に4つのコアのうち1つを使用するとパフォーマンスが向上します。 2つ以上のコアを使用するよりも!これは、VMの起動時だけでなく、コンパイルベンチマークでも見られます。
他のハードウェアでは結果が異なります。また、8コアのi7があり、そこにあるコアの数に応じてパフォーマンスが大幅に向上するようです(そこに4を使用すると幸いです)。
私のヒント:最初に新しいハードウェアのベンチマークを行います。
OSのスケジューラを信頼し、VMでビジー状態のときに常にホストに潜在的にアイドル状態のコアを持たせたいことがわかっている場合を除き、VMを物理コアの数に設定します。
これは、物理マシンだけでなく仮想マシンで何をしたいかによって異なります。ホストオペレーティングシステムが他のアクティビティに使用されている間に仮想マシンを使用する必要がある場合は、VMに2つのプロセッサコアを使用して、VMが全負荷状態の場合にホストに2つ残るようにすることをお勧めします。一方、主にVMで作業している場合は、すべてのプロセッサコアを使用できます。
ただし、ゲストが4つのコアすべてを一度に使用することが予想される場合を除き、ホストOSでの作業を続けながら、それらすべてを安全に使用できます。ホストオペレーティングシステムで実行中のVMプロセスの優先度はいつでも調整でき、システムはそれに応じて負荷を分散します。
はい、私もそれが依存すると言うでしょう。しかし、私がやりたいことを言います。職場では、クアッドコアCPUがあります。そのため、仮想イメージ(win7)に2つのCPUを割り当てました。そうすれば、ホストマシンと仮想マシンの両方を同時に使用でき、それぞれのCPUリソースが等しくなります。