web-dev-qa-db-ja.com

VMに複数のCPU /コアを設定すると、実際にパフォーマンスが向上しますか?

VMwareワークステーションを使用すると、VMを複数のコアで設定できます。実際には、デュアルコアと4つの論理コアを備えたマシンで使用しています。したがって、 VMのコア?

11
Pete2k

VM=が実行されているかによって異なります。n個のコアを持つマシン上のゲストは、ゲストが複数のCPUを効果的に利用できる限り、割り当てられたn-1コアで最高のパフォーマンスを発揮します。残念ながら、これを決定する最も簡単な方法は、試して見ることです。通常、2から始めて、パフォーマンスの向上がなくなったら停止します。通常、2つのコアで「スイートスポット」が見られます。アプリとOSの組み合わせはほとんどありません実行することはそれよりも優れたスケールになります。

8
Jim B

明確にするために、デュアルコアCPUがあり、VMに4つの仮想CPUを割り当てているとおっしゃっていますか。

この場合、いいえ。物理実行コアよりも多くのvCPUを割り当てると、4つの仮想コア間で2つの物理コアを共有するオーバーヘッド(および物理ホストで実行されるすべてのもの)により、実際にパフォーマンスがわずかに低下します。

2つのvCPUを割り当てると、VMから最高のパフォーマンスが得られます。

6
Shane Madden

少し前に( 1年前の私の質問を参照 )ハイパースレッディングのクアッドコアCPUで物理コアと論理コア(スレッド)からvCPUを割り当てる実験を行いました(8つの割り当て可能なvCPUが利用可能であるようです) 。私がそのとき得た答えが示唆したように、そして私たちの経験が終わりました-それを実行できるようにするには、各ゲストに可能な最小数のコアを割り当てる必要があります。

ホストで利用可能な物理コアよりも多くのvCPUを割り当てる場合、ゲストが同時負荷下にある場合、ハイパースレッディングは、別のCPUを効果的にシミュレートするためにスレッド間でCPUコンテキストを切り替えるのに必ずしも十分高速ではありませんでした。これにより、再起動やfsckを必要とする可能性のあるロックアップやタイムアウト、さらにはスタックのアップなど、すべてのゲストにとって非常に厄介な問題が発生する可能性があります。このようなことが起こらなくても、ゲストのパフォーマンスは多くの場合、高速ではなく低速になります。

@Chris Sが当時彼のコメントでそれを述べたように、「あなたが逃げることができる限り常に最小限に割り当てれば、あなたは大きな頭痛を避けるでしょう」。

5
nedm