Тож справді, що таке надмірність віртуалізації і коли я повинен турбуватися?


16

Я шукаю хороших правил, щоб зрозуміти, коли НЕ віртуалізувати машину.

Наприклад, я знаю, що повністю пов'язаний з процесором процес з майже 100% -ою ефективністю, ймовірно, не є гарною ідеєю для віртуалізації, але чи є сенс виконувати щось, що використовує процесор більшу частину часу "значну кількість" (скажімо, 40 або 50%)?

Інший приклад: якщо я віртуалізую 1000 машин, навіть якщо вони використовуються лише з легким або помірним рівнем використання, можливо, було б погано запустити це на хості з лише 4 ядрами.

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

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


1
навіть із деякими завданнями, пов'язаними з процесором, є сенс віртуалізації - дозволяючи користувачам подавати завдання в кластери, оскільки зображення VM дозволяють їм набагато більший контроль над середовищем, за допомогою якого виконуються завдання, ніж це можливо, наприклад, за допомогою простого планувальника пакетних пакетів.
— Flexo

Але в якийсь момент планування "виконання VM" видається непотрібним накладними, коли вже досить складно запланувати потоки в межах одного віртуального комп'ютера, я прав?
— kvista

Відповіді:


13

Дискова підсистема. Зазвичай це найменш доступний ресурс. Пам'ять, звичайно, але це одне.

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

Використовуючи в гостях лише 512 Мб пам'яті, розміщується весь кеш диска на хості. І це не однаково розділено між гостями.

Не турбуйтеся про IO CPU. Таким чином віртуалізація є дуже ефективною, часто пов'язаною, як лише декілька процесів, що працюють в одній системі. Я рідко бачу мульти-ксеонні системи, що працюють на 100% на процесорі.

редагувати: друкарські помилки


3
Вимоги вводу / виводу важкого диска стануть причиною №1, щоб не віртуалізуватись - це найбільше постраждалий ресурс через покарання за віртуалізацію, дивіться codinghorror.com/blog/2006/10/…
— Джефф Етвуд

Дякую - обидва коментарі корисні. Цікаво, чи хтось знає, чому використання високого диска проблематично для віртуалізації? Чому інженери віртуалізації ігнорують це відносно основне питання? Або це просто принципово складніше, ніж віртуалізація процесора?
— kvista

Примітка - @Jeff, я читаю вашу публікацію в блозі 2006 року, і я припускаю, що пояснить, чому краще (тобто резервування шпинделя), але моє питання до розробників віртуалізації / виконавців залишається тим самим - чи це просто принципово проблематично для віртуалізації в спосіб віртуалізації процесора не є?
— kvista

3
Лише так багато прагне зробити жорсткий диск. Для жорсткого диска 5 мс це буде 200 пошуків секунди. І, загалом, коли ОС копіює файли чи сканує каталоги, вона завжди використовує 100% диска io. За цей час всі невеликі запити з диска затримуються, і їх дуже багато. Також буфери файлової системи марнуються через копію. Можна сказати, що наша концепція роботи ОС покладається на холостий жорсткий привід.
— Antti Rytsölä

1
Спасибі. Я думаю, було б цікаво подивитися, чи змінять SSD взагалі це рівняння. Але зараз ми надто далеко переходимо в режим обговорення. Я розумію - дякую всім.
— kvista

15

Речі, які я ніколи не помістив би в машині:

  • Все, що використовує конкретне обладнання, яке неможливо віртуалізувати: зазвичай графіка, досить багато апаратних модулів захисту, все, що стосується індивідуальних драйверів (наприклад, мережеві драйвери, наприклад).

  • Системи з видачею ліцензій. Деякі плати за програмне забезпечення на фізичний процесор або ядро, незалежно від того, скільки ви виділили для VM. Ви б потрапили під час аудиту, якби у вас було ліцензійне програмне забезпечення для одного ядра, що працює в VM на 32-ядерному сервері.

Речі, які я б перешкоджала введенню в VM:

  • Програмне забезпечення, яке вже докладає зусиль для використання всіх ресурсів товарного обладнання. Машини, що працюють як частина "великих даних" зусиль, як hadoop, як правило, розроблені для роботи на голому металі.

  • Все, що буде тонко налаштоване, щоб використовувати ресурси. Коли ви дійсно починаєте налаштовувати базу даних, VM, які претендують на ресурси, дійсно збираються запустити ключ.

  • Все, що вже має велике вузьке місце. Вона вже не грає добре з собою, швидше за все, не буде грати добре з іншими.

Є кілька речей, які є досить приголомшливими для розміщення в машинах віртуального управління:

  • Все, що витрачає досить багато часу на простої. Хости комунальних служб, такі як пошта та DNS, важко сформували достатньо навантаження на сучасне обладнання, щоб гарантувати спеціальні сервери.

  • Програми, які самостійно не змінюють масштаб (або легко). Спадковий код досить часто потрапляє до цієї категорії. Якщо додаток не розшириться, щоб зайняти сервер, використовуйте безліч віртуальних серверів.

  • Проекти / програми, які починаються невеликими, але зростають. Набагато простіше додавати ресурси до VM (а також переходити на новіші, більші апаратні засоби), на відміну від запуску на голий метал.

Крім того, я не впевнений, чи перебільшуєте ви розміщення величезної кількості VM на одному хості, але якщо ви намагаєтесь отримати велике співвідношення VM: HW, ви можете замість цього розглянути ESX, Xen, KVM. Ви проїдете набагато краще, ніж використовувати VMware або virtualbox в Windows.


1
+1 дуже корисні організовані коментарі - дякую!
— kvista

Ще один коментар - навіть якщо я використовую ESX тощо, я припускаю, що в якийсь момент немає сенсу розміщувати машини X на основному хості Y. Які хороші правила великого пальця? Я припускаю, що білі документи з віртуалізації десь повинні вирішити це питання, але, на жаль, я не в змозі його легко знайти.
— kvista

1
Для VMware ви можете почати тут: vmware.com/technology/whyvmware/calculator
— Cakemox

Для довідки: за посиланням VMWare вище ви можете налаштувати до 30 ВМ на процесор. За замовчуванням - 6 ВМ на процесор.
— Олексій Юрша

4

Є два моменти на ефективність віртуалізації.

  • спільне вузьке місце
  • емуляція

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

Я думаю, що головне питання для ефективності роботи (особливо інтерактивності) - це частини емуляції системи віртуалізації. Це відрізняється залежно від налаштування. Диск та мережа - типові кандидати. Як правило, емуляція подвоює "вартість" виконання дії, тому будь-який час затримки апаратного забезпечення слід вважати подвоєним, а будь-яке число наповнення повинно бути вдвічі меншим.


1
цифри, які я бачив, - це процесор на 96-97%, мережа на 70-90%, а диск на 40-70% (з голого металу)
— Jeff Atwood

1
+1 корисне правило коментаря є корисним.
— kvista

2

Зрештою, будь-яке навантаження високої продуктивності не повинно бути віртуалізованим. Навички виртуалізації у виконанні нетривіальні. Результати моїх тестів дивіться тут:

http://www.altechnative.net/2012/08/04/virtual-performance-part-1-vmware/

ОТОХ, якщо ви хочете об'єднати ряд машин, які весь час простоюють, віртуалізація - це шлях вперед.


1

Гарна відповідь від anttiR.

Крім того, критичні за часом системи. Я просто з'ясував, що гниль за розміром Hyper-V (vm повільно відстає; всі сучасні ОС в vm роблять це, часто переставляють) не грає добре з деякими критичними додатками, які я розробляю. Крім того, я збираюся використовувати там багато процесора, і я планую отримати 12-ядерну машину саме для цієї програми у виробництві.


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

У мене проблема зі стабільністю тактової частоти для запису даних;) Слава богу, я отримую надійну часову позначку від каналу даних, але з’ясувати, чи є проблеми з мережею, важко, коли системний годинник не стабільний.
— TomTom
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.