Сравнение производительности гипервизоров. Маркетинговая агония.

Сегодня я бы хотел поговорить об одной текущей PR-акции VMware. Недавно компания заказала «независимое тестирование» производительности гипервизора vSphere 5 и Hyper-V R2 SP1 компании Principled Technologies. В качестве задачи в виртуальных машинах устанавливался SQL Server, к которому с различных внешних клиентов шли автоматизированные обращения. Производительность вычислялась, как сумма выполненных транзакций. Главным результатом, пропагандируемым адептами VMware является 18.9% преимущество vSphere над Hyper-V в количестве транзакций. VMware публикует документ на своём сайте и активно спамит его заказчикам, как результат «независимого тестирования». Давайте попробуем разобраться, в чём там дело, и почему VMware бьётся в маркетинговой агонии с придуманными тестами.

Начнём с изучения методики тестирования и результатов, предлагаемых для ознакомления в более подробном документе на сайте Principled Technologies, проводивших это тестирование. В качестве тестовой системы использовался сервер DELL PowerEdge R710 с 96ГБ памяти и дисковые хранилище DELL EqualLogic PS5000XV. Гостевые виртуальные машины с Windows Server 2008R2 SP1 конфигурировались 4ГБ памяти. Тестирование проводилось в два этапа: сначала для 24 виртуальных машин (суммарный объём памяти в ВМ равен памяти на сервере), а далее тестировалась «масштабируемость» на 30 виртуальных машинах (требующих в данной конфигурации 120ГБ памяти, при наличии 96ГБ на сервере).

Очевидно, что «независимое тестирование» ставило себе вполне конкретную задачу получить озвученный выше результат. Что можно сказать про предложенный механизм тестирования?

По непонятным соображениям основной упор (и 18.9% разница в результатах) делалась на тестирование конфигурации, когда объём потребляемой машинами памяти превышает объём физической памяти. Цель очевидна – показать возможность Memory Overcommitment. Не важно, что это не рекомендуется в реальной среде самой VMware. Не важно, что по новым правилам лицензирования vSphere, заказчик лицензирует vRAM не за физически доступную, а за максимально назначенную память (то есть в данном случае, на сервере с 96ГБ требуется лицензировать не менее 120ГБ памяти, раз там созданы 30 машин с 4ГБ. Не важно, что четверть памяти обеспечивается файлом подкачки). Не важно, что часть продуктов самой VMware не поддерживаются на серверах с разрешенным Overcommitment (например новомодный vSphere Storage Appliance). Главное было получить некие цифры. Посмотрим на них..

Даже в первом случае c 24ВМ, очевидно, что сам гипервизор также требует некий объём памяти, так что и для 24 машин выделить реальные 96ГБ в такой конфигурации невозможно. Результаты тестирования 24 машин показывают примерно одинаковые результаты в производительности, vSphere выигрывает пару процентов, как я понимаю, за счёт того что Hyper-V как раз не хватает этих самых 2% памяти.

Далее запускаются ещё шесть машин, так чтобы в случае VMware суммарный объём памяти достиг 120ГБ (с использованием Overcommitment), а Hyper-V имел 30 машин примерно по 3ГБ. Результат вполне прогнозируемый.

Отдельно скажу, что для виртуальных машин с SQL ставился буфер в 10%. Не рекомендованное значение в 5%, и не значение по умолчанию в 20%, а некое промежуточное, что несколько настораживает. Также очень настораживает факт, что в документе, подробно описывающем версии ОС и SQL, оборудования и драйверов ни слова не сказано о том, какое издание SQL Server использовалось. Как вы знаете, Standard Edition не поддерживает динамическую память. Для сервера с 30 запущенными виртуальными машинами с SQL покупать лицензии Standard будет дороже, чем две процессорные Enterprise, однако, вряд ли это беспокоило Principled при тестировании.

Также нельзя не отметить интересный факт. В описании процесса тестирования указано, что после загрузки всех виртуальных машин, перед запуском теста предлагалось подождать один час. Интересно почему? Очевидно, что для эффективной демонстрации технологии Transparent Page Sharing это было необходимо. В реализации vSphere TPS не работает в реальном времени, а лишь оптимизирует одинаковые блоки памяти раз в час (значение можно увеличить). Указав один час ожидания перед запуском теста, Principled честно даёт понять, что рассчитывает получить от этого увеличения производительности. Очевидно, что в реальной жизни это неприменимо, как уже не раз обсуждалось, с Windows 2008/7/R2, а также с Linux, технология TPS работает неэффективно.

Как можно оценивать тест и его результаты? Думаю, что все прекрасно понимают, что в промышленных средах Overcommitment никто использовать не будет. Сама VMware это не рекомендует в своей документации, однако для теста было решено рекомендациями пренебречь. Для ситуации, когда Overcommitment (почти) не использовался разница в 2% производительности это убедительная победа бесплатного Hyper-V над vSphere, где для работы с 96ГБ памяти требуется купить две лицензии Enterprise или три Standard (можно, конечно, и две Enterprise Plus, одной не хватит, ибо лицензируется каждый процессор).

А теперь попробуем оценить это с точки зрения адепта VMware. Overcommitment – классная технология, которую адепты используют в промышленных внедрениях. Технология позволяет получить 18.9 преимущества над Hyper-V – победа! Однако? Однако нужно купить две лицензии vSphere Enterprise за $6990. Может быть проще купить второй сервер, и запустить на нём ещё виртуальные машины Hyper-V за те же деньги? Или удвоить память и количество машин на первом сервере за те деньги, которые можно сэкономить, отказавшись от vSphere? Это я предлагаю решать вам самим. К статье прилагаю более подробную презентацию, которая описывает эту агонию маркетолухов VMware, выпустившим такое «независимое тестирование» у себя на сайте. Рекомендуеися к ознакомлению всем, кто получил в виде спама от VMware результаты этого тестирования.

Я бы с удовольствием поучастсвовал в реальном тестировании - где мы бы публично оговорили методологию, создали бы скрипты инсталляции, конфигурации и тестирования, и дали бы независимому лицу провести само тестирование. Однако, увы, лицензионное соглашение vSphere до сих пор не позволяет никому публиковать результаты тестирования, если методология не была одобрена VMware. Что за методологии там одобряют мы только что поняли. Буду рад злобным комментариям!