Чи покращить роботу VM з більш ніж 1 процесором / ядром продуктивність?


11

Коли я використовую робочу станцію VMware, я можу встановити VM з декількома ядрами. Я фактично використовую його на машині з подвійним ядром та 4 логічними ядрами. Так я б дійсно покращив продуктивність VMS, використовуючи більше ядер на VM?


3
Варто пам’ятати одне про розмір віртуальних гостей: Якщо це отримало б користь від встановлення на реальній машині, то це піде на користь цьому як віртуальній машині, і навпаки. І найголовніше: нічого магічного не трапляється із вимогами до системи чи програми лише тому, що ви щось віртуалізували .
Роб Моїр

Відповіді:


8

залежно від того, що працює VM, гість на машині з n кількістю ядер буде найкраще працювати при n-1 ядрах, призначених до тих пір, поки гість зможе ефективно використовувати декілька процесорів. На жаль, найпростіший спосіб визначити це - спробувати і побачити. Зазвичай я починаю з 2 і зупиняюсь, коли у мене закінчується підвищення продуктивності. Зазвичай 2 ядра - це те, де я бачу "солодку пляму". Кілька комбінацій програм / ОС, які я натрапив, будуть масштабнішими за це.


6

Щоб уточнити, ви говорите, що у вас двоядерний процесор, і ви призначили 4 віртуальні процесори на VM?

У цьому випадку ні; якщо ви призначите більше vCPU, ніж у вас є фізичні ядра виконання, ви дійсно побачите невелике зниження продуктивності через накладні витрати спільного використання двох фізичних ядер між 4 віртуальними ядрами (плюс усе, що працює на фізичному хості).

Ви побачите найкращу продуктивність від VM, призначивши йому 2 vCPU.


Не обов'язково - покращити продуктивність ви зможете лише тоді, коли програми, що працюють на VM, зможуть скористатися багатоядерними системами. На жаль, хоча це 2011 рік, багато програм не роблять.
EEAA

@ErikA Справедливий момент - відкидання додатків убік, я просто кажу, що лише з 2 фізичними ядрами, 2 vCPU на одному VM завжди краще, ніж 4 vCPU.
Шейн Мадден

Так, 100% погодилися з цим питанням.
EEAA

5

Ми експериментували деякий час тому ( див. Моє запитання ще рік тому ), призначаючи vCPU від фізичних ядер проти логічних ядер (ниток) у чотирьохядерних процесорах з гіперточенням (8 виданих vCPU, що присвоюються) були доступні). Оскільки відповіді, які я отримав, тоді запропонували - і наш досвід засвідчив - ви повинні виділити кожному гостю мінімальну кількість ядер, щоб ви могли його виконати.

При призначенні більше VCPU, ніж фізичних ядер, доступних для хоста, якщо гості були під одночасним навантаженням, гіпертодіація не завжди була достатньо швидкою при переключенні контексту процесора між потоками, щоб ефективно імітувати інший процесор. Це може призвести до дуже неприємних речей для всіх гостей, включаючи блокування та тайм-аути, які можуть зажадати перезавантаження, fsck та ще гірше на стеку. Навіть якщо цього не відбудеться, продуктивність для гостей буде швидше повільною, ніж швидшою.

Як @Chris S заявив це у своєму коментарі тоді, "завжди виділяйте якнайменше, як ви можете піти, і ви уникнете великих головних болів".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.