Сравнение производительности гипервизоров: хорошо это или плохо?

Существует множество «зависимых» и независимых тестов, проводимых для выяснения чьи же яйца кто все-таки быстрее. Однако, болезнь «зависимых» тестов, проводимых производителем гипервизора, – их возможная пристрастность. Болезнь независимых – неготовность к сравнению такого рода.Например, на следующем рисунке вы можете видеть загрузку процессора для гостевой и родительской (хоста )операционных систем в Hyper-V R2.
cpu-load
Пример №2 – программа для тестирования производительности HDD – HDTune. Я считал ее вполне адекватной, пока не установил на свой ноутбук Sun VirtualBox. Показанная мне скорость (виртуального) жесткого диска превышала физическую в три раза.
Другая ошибка, которую часто допускают при сравнении гипервизоров – неверные предпосылки. Как правило, авторы выбирают изолированный (standalone) хост для тестирования производительности с помощью как синтетических, так и реальных нагрузок. Планируется, что результаты теста будут очень интересовать клиентов из малого или среднего бизнеса, поскольку для уровня Enterprise более интересен именно функционал гипервизора. Так ли это?
Допустим, я средний заказчик, имеющий 20 Windows Server на отдельных физических серверах и примерно 500 клиентских машин. Я думаю, что в 90% случаев такому заказчику вполне хватит трех физических серверов с двумя 4-ядерными процессорами Intel Xeon, 32 (если не 16) гигабайтами оперативной памяти и полки на двенадцать SAS-дисков 15k. Причем я вполне смогу выбрать для себя любой из гипервизоров и успешно реализовать на нем консолидацию серверов. По сути, выбор гипервизора в таких компаниях зачастую зависит от предпочтений системного администратора либо того, кто первым найдет общий язык с директором по ИТ. В результате мы видим, что для малого бизнеса функционал, как ни странно, важнее, чем большая производительность гипервизора.
В то же время, крупным заказчикам жизненно необходимы такие технологии, как vMotion или Fault Tolerance. Необходимы, пожалуй, в большей степени чем большая производительность. Получается, что всем нужны технологии, а сравнивается обычно производительность 🙂
Сравнивать гипервизоры по технологиям тоже не совсем корректно. Возьмем в пример тот же High Availability (высокая доступность виртуальных машин). Решение, доступное в бесплатном Hyper-V Server R2 и в платных Xen/vSphere. При этом, коллега Leo из солнечной Австралии делится, как настроить High Availability на БЕСПЛАТНЫХ ESXi.
Давайте сравним Live Migration (перенос виртуальной машины на другой хост без ее остановки), который будет у Microsoft и уже есть у Citrix, VMware. Не буду говорить за Citrix, но у Microsoft есть значительное ограничение – хост может участвовать только в одном процессе Live Migration одновременно. Если у вас на хосте 30 виртуальных машин, процесс миграции затянется.
Получается, производительность вообще никому не нужна, так? Нет не так. Например, Михаил Михеев приводит пример банка, консолидировавшего большую часть своих серверов. Его виртуальные машины генерируют нагрузку примерно в 30000 IOPS. Пусть я покажусь неграмотным, но представим, что каждая операция чтения/записи использует кусок данных в 16 килобайт. Требуемая пропускная способность в этом случае примерно 3,67 гигабит/сек. Как вы понимаете, еще нужно протестировать, какие гипервизоры и на каком оборудовании смогут выдавать столько IOPS.
Другой пример – все хорошие функции платные и лицензируются либо по процессорам, либо по хостам. При лицензировании гостевых операционных систем Windows Server есть интересная возможность – покупая на физический сервер Windows Server Datacenter, вы можете запускать в виртуальной среде неограниченное количество виртуальных серверов. Соответственно, если у вас 600 виртуальных машин с Windows Server, то для вас есть разница, покупаете вы лицензии на 20 хостов или на 30. Даже если это 20 хостов vSphere Enterprise Plus или 30 хостов с XenServer Essentials, например (в обоих случаях рассматриваются 2-процессорные сервера). Кстати, в приведенном примере гипервизор VMware вроде бы получается дороже по лицензиям примерно на $16000. Но в итоге может оказаться дешевле за счет меньшего количества серверов!
Какие же выводы можно сделать? Производительность важнее все-таки для средних/крупных клиентов. Мелким же интересен максимум функционала за минимум денег или лучшее соотношение цены/качества. А качественно сравнить функционал – это вам не попугаев мерить!

12 thoughts on “Сравнение производительности гипервизоров: хорошо это или плохо?”

  1. хорошие идеи насчет – Производительность важнее все-таки для средних/крупных клиентов. Мелким же интересен максимум функционала за минимум денег , спасибо

  2. Производительность надо сравнивать на выполнении реальных задач, например, как это сделано здесь http://www.it-dynamics.ru/index.php/inmenu-31/3/60-2009-05-05-06-34-21

    И неправда, что для малого бизнеса проивзодитьельность не нужна.
    Как правило, в малом бизнесе стоит вопрос как можно более эффективно задействовать один единственный физический сервер.
    А вот все ентерпрайс фишки как раз и не так важны из-за их стоимости.

  3. А давайте вступим в полемику, Андрей 🙂

    Производительность КАКИХ реальных задач вы предлагаете тестировать? И кроме того, вы не забыли, что если вам важна производительность на ЕДИНСТВЕННОМ сервере, так и все тесты надо запускать одновременно, а не поэтапно. 😉

    Кроме того, опасно – располагать ВСЕ виртуальные машины на едином сервере и не иметь возможности его заменить. Да еще не все старые процессоры поддерживают аппаратную виртуализацию, поэтому не каждый старый сервер вам подойдет. 🙂

    Давайте, я попытаюсь описать примерного “малого” покупателя, как я, и его потребности:
    1) Active Directory. На данный момент практически единственной утилитой для стресс-тестирования является ADTest. Быстро в утилите разобраться не получится;
    2) SQL. На различные грабли в тестировании SQL нарывалось много человек. Есть МОРЕ документации, описывающей настройку сервера виртуализации и собственно SQL-сервера. При всем моем самомнении, я бы за тестирование производительности SQL не взялся. Если интересно, могу примеры ссылок и скандалов привести;
    3) Exchange. Хмм. С его тестированием попроще, но опять-таки – читаем МОРЕ документации и смотрим как бы не накосячить;
    4) Файл-сервер. Вроде бы самая простая вещь – косячить практически негде.
    Соответственно, я утверждаю, что такому малому бизнесу будет практически пофигу, на каком гипервизоре сидеть. И считаю, что разницы в производительности до 50 пользователей никто не заметит, если грамотно подойти к настройке.

    P.S. Год назад я потратил НЕДЕЛЮ, сравнивая дисковую производительность нативной Windows Vista на ноутбуке, Virtual PC, VMware Workstation и Hyper-V 1.0. Естественно, игрался с различными параметрами кэширования и контроллеров. Выиграла Vista, с отставанием в 10% шел Hyper-V. И все бы ничего, но поставленный потом Sun VirtualBox выдал производительность диска на 200% превышающую таковую у Vista (это я указал в статье).

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

  4. Ну начнем с того, что тесты как раз там запускались одновременно.

    Про замену сервера – это маломо бизнесу уж точно не по карману. Деражать в резерве еще один сервер. А вот backup! Это да, это нужно. И если есть возможность поиметь его забесплатно или за дешево – это очень хорошо. Сервер можно отремонтировать (временно заменить) и потом восстановится с бекапа.

    По тестированию. Самому малому бизнесу и не надо заниматься этим. Нужно брать готовые проверенные решения.

    Вопрос производительности конечно же спорный. Если разница 5-10%, то может быть и ничего. А вот если больше, то это уже будет чувствительно.

    Тесты вещь вообще очень тонкая конечно. И самое правильное пытаться тестировать на реальной нагрузке. Вопрос лишь в том как ее получить.

    P.S. 50 пользователей это уже пожалуй не малый бизнес. Просто на западе и у нас несколько разные подходы что считать малым бизнесом, а что нет.

  5. Для малого бизнеса, я бы вывел простенькое правило:
    “У малого бизнеса нет приложений способных загрузить современные процессоры, так как нет денег на современную быструю дисковую подсистему”. Попростую говоря практически невозможно придумать тесты для малого бизнеса, нечего тестировать.

  6. Без обид, Andrey, но приводимое тобой сравнение гипервизоров является некорректным. 🙂
    Чем больше я его читаю, тем больше начинаю сомневаться в компетентности тестеров 🙂
    Пойми, все, что можно вывести из этого теста, – это то, что быстрее всех архивирует и выполняет тесты OLTP-SQL ненастроенный Xen (по сравнению с другими ненастроенными гипервизорами).
    Когда я говорил про ОДНОВРЕМЕННЫЙ запуск нескольких тестов, имелось в виду именно одновременное тестирование нескольких РАЗНЫХ виртуальных машин с AD, Exchange, SQL, etc.
    Такого сравнения бесплатно никто не проведет. 🙂

    Кстати говоря, приложения, которые хорошо масштабируются горизонтально, очень хорошо виртуализовывать. Например, одна большая железка с кучей процов и памяти позволит обслуживать меньше клиентов (будучи сервером терминалов или веб-серверов), чем она же, поделенная на несколько виртуальных серверов.

    По поводу количества – для названных мной 50 человек из малого бизнеса и нужен второй сервер – чтобы они не курили бамбук пока починят основной. Т.е. по сути второй сервер нужен тогда, когда стоимость простоя компании начинает превышать стоимость сервера (железа + софта, не делайте стандартной российской ошибки 🙂 )

    P.S. Фраза дня – “Тест на архивирование при помощи WinRAR дает более серьезную нагрузку на процессор и диск по сравнению с тестом SQL Server”. :)))))))))))))

  7. Кстати, камень в сторону тестеров:
    Виртуальные машины в VMware ESX имеют несколько типов дисков. По умолчанию создается диск, который показывает низкую производительность при его первичном тестировании. Если тестеры не знают о такой фишке, то либо ESX сольет в тестировании капитально, либо по средним результатам. Самые быстрые у него диски – eagerzeroedthick – создаются, например, через vmkfstools.
    Просто они ОООчень дОООлго создаются 🙂
    И таких подводных камней на морское дно хватит.

  8. Задача и была тестировать ненастроенные гипервизоры (с настройкой по умолчанию).

    И при всем этом ESX не слил. Кроме того, перед тем как начать тестирование что называется в зачет, тест прогонялся пробный раз вне зачета.

    Теперь вернемся к разговору о втором серевере 🙂
    Ну не покупает малый бизнес второй сервер. Или мы просто расходимся в оценке что такое малый бизнес.

    Дай бог, что малый бизнес осознал что нужно приобрести нормальную серьезную железку под сервер вместо самосбора и основательно подойти к выбору программного обеспечения.

    Так что я утверждал и буду утверждать – самое оптимальное что нужно малому бизнесу это обеспечить быстрое восстановление одного единственного сервера.

    Идем далее… Да, тестирование одновременно запущенных нескольких разных виртальных машин было бы корректнее, но реализовывать это сложнее. Самое главное – тяжело проследить зависимость производительности от кол-ва одновременно запущенных машин. Допустим две машины – на одной SQL, а на второй winrar. Когда мы переходим к 3-м машинам что мы должны запустить на 3-ей? А на одной виртуальной машине?

    А WinRAR и правда в данном конкретном случае дает более серьезную нагрузку. SQL тесты идут не сплошным потокм, между отдельными итерациями есть пауза. Да и счетчики я смотрел…

  9. Андрей, я и пытаюсь объяснить, что бессмысленно тестировать НЕНАСТРОЕННЫЕ гипервизоры. 🙂 Это то же самое, что сравнивать компьютеры по процессору: у кого быстрее процессор, тот комп и круче.
    Вы же наверняка знакомы с кучей гайдов по разгону операционных систем Windows XP или Vista. Отключаем десяток служб, останавливаем индексирование и получаем большую производительность с операционкой, заточенной под определенные задачи.
    Другой вариант модульности – линукс. Может устанавливаться на гигабайты, а может – на несколько мегабайт (пример – dd-wrt).

    Поэтому-то я и считаю, что установить на сервер гипервизор и прогнать архивацию WinRAR или тестирование SQL – это как лизнуть палец и померить скорость ветра. “Best practice, Peformance guide” – они для кого пишутся?

    Производительность от количества запущенных ВМ мало зависит. В первом приближении, она зависит от использования процессора, памяти, жд и сети. Есть VMware Capacity Planner – инструмент, позволяющий оценить загрузку вашей физической инфраструктуры и примерное количество серверов/систем хранения после виртуализации.

  10. А как вообще тогда можно сравнивать настроенные гипервизоры?
    Вообще никакого сравнения не получится.
    Каждый в меру своего профессионализма и знания того или иного гипервизора сможет добится определенных результатов.
    Нет, сравнивать пожалуй всеткаи можно, но сравнение получается очень сильно персонозависимым от тестера.

    А для малого бизнеса нужно чтобы все работало что называется “из коробки”. Вот это и сравнивается.

    Минимум затрат – максимум эффекта. Вот что нужно!

  11. “А как вообще тогда можно сравнивать настроенные гипервизоры?”
    Я про это и говорю. 🙂
    Сравнение по производительности мало осуществимо в силу некоторых причин. Разве что ВСЕ вендоры поделятся своими СПЕЦИАЛИСТАМИ для образования некоторого комитета, который возьмет эталонное железо и проведет какие-то тесты. Проблема в том, что стоимость такого тестирования (а точнее, исследования) будет исчисляться в сотнях тысяч рублей (если не миллионах). Отсюда и вопрос – а оно им надо?
    На данный момент почти на любое “негативное” тестирование можно ответить “а ваши специалисты неграмотные!”. А тут-то кого называть неграмотным? :))

Leave a Reply to A.Vakhitov Cancel reply

Your email address will not be published. Required fields are marked *