Hyper Threading та віртуальні машини?


15

Я вже дивився на цю нитку: Hyper-V та Hyper-threading: Увімкнено чи вимкнено? , але єдиною відповіддю є конкретний Windows ....

Я будую сервер VM (використовуючи Proxmox VE, якщо це має значення) і мені цікаво, як гіпер-нитка може впливати на віртуальну машину ...

Зокрема, якщо я збільшить кількість віртуальних машин, чи допоможе гіпернарізка чи пошкодить продуктивність?

Також найбільшими віртуальними машинами будуть сервер терміналів з ~ 30 клієнтами (4 ядра / 8 ГБ оперативної пам’яті) та файловий сервер, якщо це допоможе.

Оновлення: Сервер - це Dell R410 з 1 ТБ RAID 10, 32 ГБ оперативної пам’яті та подвійний Intel Xeon E5530 (я не впевнений у точній моделі, але це був E55xx з 2+ ГГц)

Оновлення: Більшість віртуальних машин будуть на KVM.


Укажіть технічні характеристики сервера, який ви плануєте використовувати.
ewwhite

Також цікаво. Чому Promox VE проти ESXi?
ewwhite

Можливо, через обмеження ESXI в 16 ГБ оперативної пам’яті на безкоштовній ліцензії
Tacticus

3
Я вибираю Proxmox через ESXi, тому що Proxmox має кілька додаткових функцій, таких як повне управління від веб-gui, кластеризація, специфікації сервера штучно не обмежені ліцензуванням, і кілька інших, які я не можу повністю пригадати. Плюс 2.0 буде включати в себе автентифікацію AD, що дуже корисно для нас, не впевнений, чи ESXi зробить ...
Soviero

1
Ви подивилися на oVirt?
діасний

Відповіді:


12

Взагалі, я залишаю HyperThreading ON для хост-серверів VM (VMWare ESXi, KVM, HyperV тощо). Це стосується Intel Nehalem та новіших процесорів (серії 5500 і більше). Доступні потоки для планування декількох ВМ.

Ви також можете переоцінити розмір ваших гостьових систем. Як правило, найкраще починати з розподілу процесора з віртуальних машин. Оскільки ви говорите про термінальний сервер, я фактично переміщу його до двох віртуальних процесорів, а не до 4 vCPU. Гіпервізору простіше запланувати час процесора для ВМ із меншими числами ядра . Оперативна пам’ять все ще є критичною, тому обов'язково зробіть багато доступним.

Дивіться: http://omtconcepts.com/wp/?p=14


Як саме дві нитки швидше чотирьох?
Soviero

3
Не швидше ... Простіше в розкладі. Дивіться мою редакцію. Машина, яку ви згадуєте, матиме 8 загальних ядер (16, з HyperThreading). Намагатись знайти ресурси для планування гостя 4-vCPU складніше, ніж 2-vCPU. У вас буде більше суперечок (і, отже, нижча продуктивність). Якщо ви плануєте запускати інших віртуальних гостей на цьому сервері, є сенс використовувати 1 та 2 гостей vCPU.
ewwhite

3
Ваша думка щодо планування стосується лише гіпервізорів, які роблять "планування банди", коли вони намагаються одночасно виконати деяке наближення "всіх або жодних" віртуальних процесорів. Для гіпервізорів, які це роблять, додавання більшої кількості віртуальних процесорів зробить VM складніше для планування. Я розумію, що Кевін оновив своє питання, щоб визначити, що він хоче використовувати KVM, здебільшого. Але я хочу зазначити, що Hyper-V не займається плануванням банди. Він покладається на паравіртуалізацію гостьової ОС, щоб уникнути необхідності планування банди.
Джейк Ошинс

Я не знав цього про Hyper-V, але це стосується інших основних гіпервізорів.
ewwhite

1
KVM не розкладає банди. Насправді це робить лише VMWare, і навіть вони додали деякі механізми для розслаблення божевільного планування банд у v5
діасний

4

Це дійсно залежить. Якщо, як ви говорите, ви збираєтеся "максимувати", що, мабуть, означає перерозподілити центральний процесор (призначити більше віртуальних ядер CPU, ніж у вас є, або рівно стільки, скільки у вас є), то HT обов'язково повинен бути на.

Якщо ви не надмірно розмовляєте, тоді, як правило, краще протестувати під вашими конкретними навантаженнями - іноді HT може насправді зашкодити продуктивності.


Я планую виділити рівно стільки ядер / ниток, скільки є, але не планую перерозподіляти.
Soviero

Як ви вважаєте, хост-ОС взагалі не потребує часу процесора? І якщо ви виділите стільки v-ядер, скільки у вас є потоки з HT, ви насправді перерозподіляєтесь щонайменше на 70-80%, тому що навіть коли HT робить продуктивність, це зазвичай на 20-30% вершин, а не на 100%, як можна було припустити з кількості потоків.
діасний

Гаразд, так не більше 12 "ядер" (75% з 16), виділених?
Сов'єро

1
Гадаю, я був недостатньо зрозумілий. Ви МОЖЕТЕ перерозподілити, і залежно від навантажень у вітринах, процесор може взагалі не стати вузьким місцем. Більше того, ви ніколи не повинні призначати більше процесорів для VM, ніж це абсолютно потрібно, тому що чим більше процесорів у VM, тим складніше їх планувати, тому багато v-cpus може насправді перешкоджати продуктивності. Що стосується 20-відсоткового приросту продуктивності за рахунок гіперточення - це не абсолют, кількість може бути дещо вищою, нижчою, нульовою або навіть від’ємною - залежно від навантаження ВМ.
діасний

О, добре. Дякую.
Сов'єро

3

Існує маса змінних, які впливають на продуктивність VM. HT - лише одна з інших змінних, але це також залежить від налаштування VM.

Одна з змінних, що впливають на HT, залежить від типу використовуваного Hypervisor.

Якщо ви використовуєте легкі віртуальні машини, такі як VZ, VServer тощо, то цілком очевидно, що HT принесе відповідні переваги, оскільки ці VM насправді не є щільно ізольованими і більше схожі на запуск багатопотокового програмного забезпечення.

Якщо ви використовуєте важкі віртуальні машини, такі як KVM, Xen HVM тощо, можливо, HT втручатиметься в речі, наприклад, коли VM виділяється два процесора, але в кінцевому підсумку використовує один HT кожен на різних ядрах.

Отже, найкраще все-таки протестувати налаштування, щоб побачити, що вам підходить.

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