Я виявив, що не існує простої та абсолютної відповіді на такі питання, як ваше. Кожне рішення щодо віртуалізації поводиться по-різному на конкретних тестах на ефективність. Крім того, такі тести, як пропускна здатність вводу / виводу диска, можна розділити на багато різних тестів (читати, записувати, переписувати, ...), і результати будуть відрізнятися від рішення до рішення та від сценарію до сценарію. Ось чому не тривіально вказати одне рішення як найшвидше для дискових вводу-виводу, і саме тому немає абсолютної відповіді на мітки, як накладні витрати на введення / виведення диска.
Він стає складнішим при спробі знайти співвідношення між різними тестами. Жодне з перевірених нами рішень не мало хороших показників на тестах мікро операцій. Наприклад: Всередині VM один-єдиний дзвінок на "gettimeofday ()" в середньому зайняв в 11,5 разів більше циклів годин, ніж на апаратному забезпеченні. Гіпервізори оптимізовані для реальних програм і не дуже добре працюють на мікроопераціях. Це може не бути проблемою для вашої програми, яка може краще відповідати додатку в реальному світі. Я маю на увазі під мікро-операцією будь-яку програму, яка витрачає менше 1000 тактових циклів, щоб закінчити (для процесора 2,6 ГГц, 1000 тактових циклів витрачається за 385 наносекунд, або 3,85е-7 секунд).
Я провів широке тестування на чотирьох основних рішеннях для консолідації центрів обробки даних для архітектури x86. Я зробив майже 3000 тестів, порівнюючи продуктивність всередині віртуальних машин із продуктивністю обладнання. Я назвав "накладні витрати" різницею максимальної продуктивності, виміряної всередині ВМ, а максимальної продуктивності, виміряної на апаратному забезпеченні.
Рішення:
- VMWare ESXi 5
- Microsoft Hyper-V Windows 2008 R2 SP1
- Citrix XenServer 6
- Віртуалізація Red Hat Enterprise 2.2
Гості ОС:
- 64-бітний Microsoft Windows 2008 R2
- Red Hat Enterprise Linux 6.1 64 біт
Інформація про тест:
- Сервери: 2X Sun Fire X4150 кожен з 8 ГБ оперативної пам’яті, 2X процесор Intel Xeon E5440 та чотири гігабітні порти Ethernet
- Диски: 6X 136 Гб SAS диски через iSCSI через гігабітний Ethernet
Програмне забезпечення для порівняння:
Процесор і пам’ять: орієнтир Linpack для 32 і 64 біт. Це процесор і об'єм пам'яті.
Дисковий ввод / вивід та затримка: Bonnie ++
Мережевий ввод / вивід: Netperf: TCP_STREAM, TCP_RR, TCP_CRR, UDP_RR та UDP_STREAM
Мікрооперації : rdtscbench : системні виклики, міжпроцесовий зв'язок
Середні показники розраховуються за параметрами:
Процесор і пам'ять: СЕРЕДНЕ (HPL32, HPL64)
Введення / виведення диска: AVERAGE (put_block, переписати, get_block)
Мережевий введення / виведення: СРЕДНИЙ (tcp_crr, tcp_rr, tcp_stream, udp_rr, udp_stream)
Мікрооперації AVERAGE (getpid (), sysconf (), gettimeofday (), malloc [1M], malloc [1G], 2pipes [], simplemath [])
Для мого тестового сценарію, використовуючи мої метрики, середні результати результатів чотирьох рішень для віртуалізації:
Накладні шари VM, гість Linux:
Процесор і пам'ять: 14,36%
Мережевий введення / виведення: 24,46%
Введення / виведення диска: 8,84%
Затримка диска для читання: у 2,41 рази повільніше
Час виконання мікрооперацій: у 10,84 рази повільніше
Накладний шар VM, гість Windows:
Середній процесор і пам'ять для 32 та 64 біт: 13,06%
Мережевий введення / вивід: 35,27%
Введення / виведення диска: 15,20%
Зауважте, що ці значення є загальними та не відображають конкретний сценарій випадків.
Перегляньте повну статтю: http://petersenna.com/en/projects/81-performance-overhead-and-comparative-performance-of-4-virtualization-solutions