» » » Сравнение производительности виртуальных машин 6 облачных платформ: Selectel, MCS, Я.Облако, Google Cloud, AWS и Azure

 

Сравнение производительности виртуальных машин 6 облачных платформ: Selectel, MCS, Я.Облако, Google Cloud, AWS и Azure

Автор: admin от 11-02-2019, 06:10, посмотрело: 23

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

Про K8s мне тоже есть что сказать, но поговорим про производительность.

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

В целом, я пользуюсь в основном Google Cloud и AWS (в сумме уже с десяток лет опыта по ним набежало) и с отечественными облачными провайдерам особо не работаю, но, по стечению обстоятельств, у меня есть активные аккаунты в Selectel, MCS, Я.Облаке и, после этого теста, еще и в Azure.

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

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

А так же, как выяснилось, прояснить некоторые «особенности» в выделении ресурсов и напомнить себе и окружающим, что далеко не всегда и не на всех платформах за одни и те же деньги можно получить предсказуемую производительность.

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

Интересующихся прошу под кат.



Методика



Виртуальные машины



У каждого облачного провайдера последовательно запускаются в разных зонах доступности (если зоны две, то 1 машина первой зоне и 2 во второй) три виртуальные машины с 4 CPU, 8 GB оперативной памяти и системным диском на 50 GB.

Тип процессора/инстанса — новейший из доступных, если есть выбор.

Тип ВМ — shared с полным выделением ядер.

Тип дисков — сетевой SSD с возможностью перемонтирования на другую ВМ.

Опции гарантированного выделения IOPS или машины оптимизированные под это не использовались, если это не предусмотрено стандартными условиями использования и отказаться от этого нельзя.

Файловая система дефолтная — ext4.

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

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

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

Операционная система — Ubuntu 16.04 последнего доступного уровня патчей.



Расчет стоимости



Расчет стоимости производился без учета каких-либо бонусных начислений от провайдера, без учета стоимости трафика, из расчета работы виртуальной машины полный календарный месяц без остановки.

Так же, некоторые платформы позволяют путем определенных ограничений (которые вполне можно умеючи пережить) весомо снизить стоимость ресурсов.

Для AWS это Spot инстансы, для GCE — Preemptible инстансы. При подходящей архитектуре приложения ими вполне можно успешно пользоваться без вреда для него, но с пользой для кошелька, проверено как лично мной, так и десятками компаний, использующих и то, и другое.

К этой же категории можно отнести тип диска в Selectel. Несмотря на то, что в основных замерах участвовали диски типа «Быстрый», существует еще ощутимо более дешевый «Универсальный», не блистающий скоростью, но подходящий для огромного количества задач. Варианты с его использованием тоже были учтены при окончательных расчетах.



Тесты



Для запуска тестов был написан вот такой скриптик, из которого видно все параметры запуска:



Для всех тестов, кроме Sysbench CPU, больше — лучше.



Результаты всех запусков были собраны в Excel таблицы для дальнейший расчетов.

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



Тестирование



Машинка-пример вне теста.



Облака принято сравнивать с обычными железными серверами. Я не вижу в этом особого смысла, так как облако — это не только и не столько непосредственно вычислительные мощности, а в первую очередь — экосистема но, тем не менее, я думаю многим все-таки будет интересно такое сравнение. Ну и вообще, с чем то надо сравнивать. С чем то близким, известным и понятным.

Именно железной машинки под рукой у меня не оказалось, зато есть весьма не новая рабочая станция Dell, она же домашний сервер с известным процессором (E5-4650L @ 2.60GHz), подходящим количеством не самой быстрой памяти DDR3 EEC (если быть откровенным — самой медленной из тех, что вообще были совместимы) и SSD диском SmarBuy, купленным года 4 назад и недавно переехавшим в состав этой сборки.

Так как работает все это под FreeBSD 11.2, то средствами bhyve была создана подходящая виртуалочка и там же был запущен тест.



Если перевести результаты в табличный вид, получается следующее:






































































































TestIter 1Iter 2Iter 3AverageStDev
FIO READ IOPS3715.003875.003694.003761.3399.00
FIO WRITE IOPS1591.001659.001583.001611.0041.76
STRESS-NG 1 CPU12227.0012399.0012134.0012253.33134.45
STRESS-NG 2 CPU23812.0023558.0021254.0022874.671409.27
STRESS-NG 4 CPU39495.0039876.0042370.0040580.331561.56
Sysbench CPU for 111.0611.0511.0511.050.01
Sysbench CPU for 25.625.575.545.570.04
Sysbench CPU for 42.842.882.822.850.03
Sysbench Mem t 12537704.012536025.172472121.342515283.5137388.96
Sysbench Mem t 23182800.433379413.653306495.593289569.8999393.41
Sysbench Mem t 44300089.714163689.934163996.474209258.7078662.11


Ну, опорные данные есть, теперь непосредственно результаты тестирования провайдеров.



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



Яндекс.Облако



Результаты по зоне ru-central1-a:



Результаты по зоне ru-central1-b:



Результаты по зоне ru-central1-c:



Сводные результаты:






































































































TestAverageAvg MinAvg MaxStDevStDev %
FIO READ IOPS543.89534.33550.008.381.5%
FIO WRITE IOPS232.78228.67235.673.661.6%
STRESS-NG 1 CPU10526.1110147.3311117.33518.724.9%
STRESS-NG 2 CPU20340.8919842.0021330.00856.614.2%
STRESS-NG 4 CPU22039.6718280.3328703.675786.9926.3%
Sysbench CPU for 111.6511.3311.960.312.7%
Sysbench CPU for 26.375.886.860.497.7%
Sysbench CPU for 43.553.403.710.164.5%
Sysbench Mem t 12137230.432081791.402195173.2856732.392.7%
Sysbench Mem t 22511195.102430456.682570853.7372533.452.9%
Sysbench Mem t 42968665.322841193.563089212.43124154.354.2%


Хочу обратить отдельное внимание на один примечательный факт.

При полной нагрузке всех ядер виртуальных машин в зонах A и B суммарная производительность НИЖЕ, чем при нагрузке только двух ядер из четырех.

Более того, я взял еще дополнительных машин в одной из зон и прогнал тест на них — проблема никуда не ушла.

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

Надеюсь, товарищи из Я.Облака прочитают эту статью и что-то с этим сделают, а если сильно повезет, то и расскажут что именно, а то получается несколько обидно и местами неприятно (достаточно много приложений ориентируются на количество ядер для расчета количества потоков).



Mail.RU Cloud (MCS)



У Mail.ru только две зоны доступности, поэтому два теста были проведены на разных машинах в одной зоне.

Результаты по зоне «Москва-Восток»(первая ВМ):



Результаты по зоне «Москва-Восток»(вторая ВМ):



Результаты по зоне «Москва-Север»:



Сводные результаты:






































































































TestAverageAvg MinAvg MaxStDevStDev %
FIO READ IOPS531.67485.33590.0053.3610.0%
FIO WRITE IOPS228.11209.00252.3322.119.7%
STRESS-NG 1 CPU7924.896982.679755.331585.4420.0%
STRESS-NG 2 CPU15920.5614030.3319665.673243.4120.4%
STRESS-NG 4 CPU29070.4421204.0038715.338890.1030.6%
Sysbench CPU for 114.1312.5515.571.5210.7%
Sysbench CPU for 26.886.227.510.649.3%
Sysbench CPU for 43.573.173.960.4011.2%
Sysbench Mem t 11486997.991234232.591989543.58435219.8129.3%
Sysbench Mem t 21834038.011726650.201982621.08132864.827.2%
Sysbench Mem t 42319512.932195498.932412902.32111890.394.8%


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

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



Selectel



Результаты его тестирования получились очень интересными. В абсолюте он предоставляет самые мощные 4-х ядерные машины из всех протестированных провайдеров.



Результаты по зоне «Москва — Березина-1»:



Результаты по зоне «Москва — Березина-2»:



Результаты по зоне «СПБ — Дубровка-1»:



Сводная таблица с результатами:






































































































TestAverageAvg MinAvg MaxStDevStDev %
FIO READ IOPS2216.331729.332611.33448.1420.2%
FIO WRITE IOPS952.78742.331123.00193.4920.3%
STRESS-NG 1 CPU13443.6710829.3318403.674297.5932.0%
STRESS-NG 2 CPU27168.8922079.6736822.008363.9630.8%
STRESS-NG 4 CPU54083.6743917.3374306.0017513.1432.4%
Sysbench CPU for 111.7211.1811.990.464.0%
Sysbench CPU for 25.865.606.000.233.9%
Sysbench CPU for 42.942.823.010.113.7%
Sysbench Mem t 12239669.752159904.222398917.72137912.866.2%
Sysbench Mem t 22301520.362009501.562453758.38252972.3911.0%
Sysbench Mem t 42766419.512284841.253178049.76450693.8116.3%


Как я уже говорил, из всех протестиванных этот провайдер предоставляет самые производительные машины из расчета на 4 потока. Но и тут есть своя особенность — опять, за те же деньги, мы получаем производительность, отличающуюся практически в 2 раза — сравните результаты Березина-2 с остальными.

Так же, хочется отметить весьма быстрые диски по разумной цене, лучше из доступных у трех тестируемых отечественных провайдеров. При этом, у машины с самым быстрым процессором самый медленный диск из трех.

Получается эдакая лотерея, правда с учетом что даже если не повезет, все равно все будет весьма и весьма прилично.



Google Cloud



Результаты тестирования GCE особых сюрпризов не принесли.

Все вполне предсказуемо, гомогенно и в целом соответствует заявленному.



Результаты по зоне europe-west1-b:



Результаты по зоне europe-west-1c:



Результаты по зоне europe-west1-d:



Сводная таблица с результатами:






































































































TestAverageAvg MinAvg MaxStDevStDev %
FIO READ IOPS931.67907.33975.0037.624.0%
FIO WRITE IOPS399.67389.00418.6716.504.1%
STRESS-NG 1 CPU14209.8914156.0014309.6786.500.6%
STRESS-NG 2 CPU28642.5628352.0029062.67372.631.3%
STRESS-NG 4 CPU29738.5629355.0030085.67366.691.2%
Sysbench CPU for 112.6112.5412.650.060.5%
Sysbench CPU for 26.366.296.440.071.1%
Sysbench CPU for 43.503.493.520.010.4%
Sysbench Mem t 12064102.942055526.352079643.4913482.640.7%
Sysbench Mem t 21426786.531368090.141538170.7496508.326.8%
Sysbench Mem t 42335620.592277993.802372470.7550549.232.2%


Тут даже комментировать особо нечего.

Производительность в 4 потока едва отличается от двух, но не деградирует.

В целом каждое ядро весьма производительно и в половину мощнее ядра тестовой виртуалки, которая идет вне-конкурса, а они не сказать чтобы самые слабые.

Диски звезд с неба не хватают, но для большинства задач их будет предостаточно.

Единственное, что стоит отдельно отметить — отличная гомогенность. Каждая из машин отличается по производительности не более, чем на погрешность измерения, что дает отличную предсказуемость и удобство планирования.



AWS



Лидер рынка, его тест меня несколько удивил, так как у них есть та же проблема, что обнаружилась у Я.Облака.

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

Для тестирования использовался тип c5.xlarge, как самый дешевый из подходящих под требования.



Результаты по зоне eu-central-1a:



Результаты по зоне eu-central-1b:



Результаты по зоне eu-central-1c:



Сводная таблица результатов:
















































TestAverageAvg MinAvg MaxStDevStDev %
FIO READ IOPS1953.561937.331966.0014.700.8%
FIO WRITE IOPS839.33832.33844.676.330.8%
STRESS-NG 1 CPU21677.1121626.6721753.0066.900.3%
STRESS-NG 2 CPU42960.3342348.0043277.67530.411.2%
STRESS-NG 4 CPU40601.114

Источник: Хабр / Интересные публикации

Категория: Google

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *