Чи є серйозний недолік планування банди, що використовується VMware?


15

Я читав деякі статті з технологій, а також цю, що стосується відмінностей між способом VMware та гіперпрограмою щодо планування процесора.

Мені було цікаво, чи зможу я отримати якусь об’єктивну інформацію з цього приводу. Здавалося б, планування банди, що використовується VMware, є ВЕЛИЧИМИ недоліком, але я не хочу просто пити охолоджувач. Чи це серйозно впливає на продуктивність чи вирішують це остання ітерація гіпервізорів VMware?

Редагувати: Коли я кажу про недоліки, я маю на увазі відносно "безкоштовного планування процесорів" Hyper V, але KVM це робить. Матеріал, який я читав, не сказав, що існували проблеми із "безкоштовним плануванням процесорів", які уникають при плануванні банди.


3
Планування банди краще поводиться на старіший код, який ніколи не перевірявся на віртуальні процесори, які можуть працювати з різною швидкістю та / або часом.
Брайан

Відповіді:


22

Як скандує Криваву Мері у темно освітленому дзеркалі для ванної, давайте подивимося, чи зможемо ми змусити Джейка Ошина з’явитися ...

Планування банди також називають спільним плануванням. Я думаю, що VMware надає перевагу терміну спільного планування перед плануванням банди.

У версіях ESX до версії 3.x VMware використовував "суворий" спільний графік, який мав недоліки синхронізації. У ESX 3.x і вище, VMware перейшов на "розслаблене" спільне планування.

Розслаблене спільне планування замінило суворе планування в ESX 3.x і було вдосконалено в наступних випусках для досягнення кращого використання процесора та підтримки широких багатопроцесорних віртуальних машин. Розслаблене спільне планування має декілька відмітних властивостей порівняно зі строгим алгоритмом спільного планування. Найголовніше, якщо в алгоритмі суворого планування існування відстаючого vCPU змушує зупинити всю віртуальну машину. У алгоритмі розслабленого спільного планування провідний vCPU вирішує, чи повинен він зупинятись на основі перекосу проти найповільнішого vCPU. Якщо перекос перевищує поріг, провідний vCPU припиняє себе. Зауважте, що відстаючий vCPU - це той, який робить значно менший прогрес, ніж найшвидший vCPU брат, в той час як провідний vCPU - це той, який робить значно більший прогрес, ніж найповільніший vCPU. Відстежуючи найповільніший vCPU братів, тепер кожен vCPU може самостійно приймати рішення про спільне планування. Як і рішення про спільну зупинку, рішення про старт також приймається індивідуально. Після того, як найповільніший vCPU покоління починає прогресувати, спільно зупинені vCPU підлягають спільному запуску і можуть бути заплановані залежно від наявності pCPU. Це вирішує проблему фрагментації процесора в алгоритмі суворого планування, не вимагаючи, щоб група vCPU була запланована разом. У попередньому прикладі віртуальної машини 4- vCPU віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий pCPU. Це значно покращує використання процесора. Відстежуючи найповільніший vCPU братів, тепер кожен vCPU може самостійно приймати рішення про спільне планування. Як і рішення про спільну зупинку, рішення про старт також приймається індивідуально. Після того, як найповільніший vCPU покоління починає прогресувати, спільно зупинені vCPU підлягають спільному запуску і можуть бути заплановані залежно від наявності pCPU. Це вирішує проблему фрагментації процесора в алгоритмі суворого планування, не вимагаючи, щоб група vCPU була запланована разом. У попередньому прикладі віртуальної машини 4- vCPU віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий pCPU. Це значно покращує використання процесора. Відстежуючи найповільніший vCPU братів, тепер кожен vCPU може самостійно приймати рішення про спільне планування. Як і рішення про спільну зупинку, рішення про старт також приймається індивідуально. Після того, як найповільніший vCPU покоління починає прогресувати, спільно зупинені vCPU підлягають спільному запуску і можуть бути заплановані залежно від наявності pCPU. Це вирішує проблему фрагментації процесора в алгоритмі суворого планування, не вимагаючи, щоб група vCPU була запланована разом. У попередньому прикладі віртуальної машини 4- vCPU віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий pCPU. Це значно покращує використання процесора. Після того, як найповільніший vCPU-сестра починає прогресувати, спільно зупинені vCPU підлягають спільному запуску і можуть бути заплановані залежно від наявності pCPU. Це вирішує проблему фрагментації процесора в алгоритмі суворого планування, не вимагаючи планувати групи vCPU разом. У попередньому прикладі віртуальної машини 4- vCPU віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий pCPU. Це значно покращує використання процесора. Після того, як найповільніший vCPU-сестра починає прогресувати, спільно зупинені vCPU підлягають спільному запуску і можуть бути заплановані залежно від наявності pCPU. Це вирішує проблему фрагментації процесора в алгоритмі суворого планування, не вимагаючи планувати групи vCPU разом. У попередньому прикладі віртуальної машини 4- vCPU віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий pCPU. Це значно покращує використання процесора. віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий ПКПУ. Це значно покращує використання процесора. віртуальна машина може прогресувати вперед, навіть якщо доступний лише один непрацюючий ПКПУ. Це значно покращує використання процесора.

Вищенаведений фрагмент - з власної документації VMware .

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

Єдине, що дасть вам важкі цифри, - це орієнтир, і це буде повністю залежати від виду коду, який використовуються процесори. Але я можу вам сказати, що якби VMware був у такому невигідному стані, то вони все одно не мали б левової частки на ринку віртуалізації.


Радий, що запитав. Це, здається, є дещо маркетинговим складом, як я бачу, як це пояснюється в документах / статтях на базі MS.
red888

8
Версії ESX до 2006 року були в невигідному становищі порівняно з Hyper-V (щонайменше, з точки зору планування процесора), який був випущений у 2008 році. Якщо хтось шокований цим, вони заслуговують на те, щоб їхня карта geek була відкликана.
Кріс С

Отже, якщо я встановлю однопоточний (да!) MSDOS в 16-ядерний VM, кожен цикл процесора VM не блокуватиме 16 ядер на хості, а лише одне pCPU? Це, а не швидкість процесорів, є головним недоліком планування банди.
діасний

"Планування банди суворіше, ніж складання планів" - посилання - тут планування банди не називається спільним плануванням. Вважайте мене розгубленим!
Робін

16

Гаразд, Райан, ти зробив мій день. Я не читаю цей форум настільки, як раніше, але трапилось завітати.

Red888, ви повинні наперед знати, що я архітектор програмного забезпечення, який працює над Hyper-V в Microsoft. Я припускаю, що більшість людей, які читають це, цілком здатні натиснути на моє посилання під цим ім’ям і виявити, що, або навіть гуглити мене, але для цієї відповіді корисно бути повністю впевненим, що люди, які читають це, не сумніваються в моїй перспективі.

Взагалі, планування угруповань корисно, якщо гіпервізор не має жодного способу впливати на поведінку ОС, що працює в межах ВМ. Це, звичайно, чому VMware почав саме так. Вони не володіють жодними операційними системами, тому їх метою було зробити так, щоб існуючі операційні системи працювали добре. Якби я був ними, я би тут почав.

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

Microsoft (і, ймовірно, кілька інших компаній) почали з іншого погляду. Ми володіємо Windows. Ми змусимо Windows поводитись добре при віртуалізації. Таким чином, планування банди не буде необхідним. Ми навіть не потрудимось створити планувальник банди.

Цікаво, що ми в Microsoft більше піклуємося про те, щоб Windows працювала добре порівняно з іншими операційними системами, ніж нас хвилює те, що Hyper-V виглядає краще, ніж VMware, або KVM, або Xen, або Oracle, або Unisys тощо. Отже, ми опублікували інтерфейси, які Windows використовує для співпраці з гіпервізором. Ось посилання, якщо вам цікаво, хоча я не рекомендую його читати перед сном:

http://www.bing.com/search?q=Hypervisor+Top-Level+Functional+Specification+3.0a%3A+Windows+Server+2012&src=IE-SearchBox&FORM=IESR02

Тож будь-який постачальник гіпервізорів може викрити речі, які спричинить спільну поведінку з Windows. Кілька з них є. Я, чесно кажучи, не знаю, чи має, або робить, або викладе це VMware. Вам доведеться запитати їх чи когось, хто приділяє їм велику увагу. І якщо вони будуть, я був би дуже здивований, якби вони не змінили свого планувальника, щоб розслабитися ще більше. Останнє твердження, звичайно, є чистою спекуляцією.

Отже, моя відповідь полягає в тому, що я сумніваюся, що ви повинні прийняти рішення про купівлю в 2014 році, виходячи з того, як працює планувальник гіпервізорів. Я підозрюю, що вони всі зараз дуже гарні. Кілька років тому це, можливо, не було правдою.

Спробуйте спробувати навантаження на різних системах і подивитися, як вони працюють. Б'юсь об заклад, що ваша кінцева продуктивність зводиться до того, чи відповідають ваше зберігання та мережа вашим потребам.


Це для інформації. Я щойно читав про це і задавав питання через академічну цікавість
red888

4
Вуоху, моя Кривава Мері працювала! : D Завжди приємно бачити, як ти зупинився.
Райан Різ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.