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


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.