Для начала я ввел такой показатель как количество очков, получаемое средствами тестирования, деленное на стоимость данной виртуальной машины в час. Для сравнения производительности виртуальных машин использовались следующие «инстансы»:
Cloud | Vm Size | Cores | Ram | Price\Hour на windows |
---|---|---|---|---|
AWS | m4.xlarge | 4 | 16GB | $0.406 |
Azure | Standard D3 v2 | 4 | 14GB | $0.422 (0.488)* |
n1-standard-4 | 4 | 15GB | $0.306** |
* Текущая цена на промо позиции, в скобках обычная цена.
** Цена с 30% скидкой при условии использования виртуальной машины 24/7 в месяц.
update: уже после публикации статьи появилась новость про ОС диски меньшего размера в Azure, которые позволяют экономить еще порядка $2.18 в месяц. Результаты это никак не меняет, но позволяет экономить порядка 0.8% от цены виртуальной машины (Standard D3 v2).
Все «инстансы» были «подняты» в Европе – Ирландия\Германия\Бельгия. Создание происходило через соответствующие порталы облачных провайдеров. Для инстансов использовались SSD различных конфигураций:
- Google Cloud – 100GB, максимум для «триала»;
- Amazon – 30GB, максимум по умолчанию;
- Azure – 127GB, по умолчанию.
Для того чтобы тесты были максимально объективными, я никак не настраивал виртуальные машины. Все «инстансы» используют Windows Server 2016, а для последнего теста – Ubuntu 16.04.02 LTS. Также я отказался от каких-либо настроек ОС и пришлось установить GeekBench для проведения тестов. Я использовал триальные версии с сайтов производителя. С помощью apt-get для Ubuntu был установлен «бенчмарк» Hardinfo. Это единственные настройки, произведенные с операционной системой перед запуском тестов.
Какие тесты были использованы
На всех виртуальных машинах я 5 раз последовательно «прогонял» следующие тесты:
- GeekBench (только Windows).
- CrystalDiskMark (только Windows).
- Hardinfo (только Ubuntu).
GeekBench
Максимально подробное описание я нашел по ссылке. Кратко говоря, общее количество тестов – 23, они разделены на несколько категорий – Cryptography, Integer, Floating Point, Memory. Но на самом деле, в результатах 25 тестов, возможно потому что у меня более новая версия. В тестах используются операции сжатия, работа с JPEG, парсинг HTML, SQLite. Я бы назвал его одним из самых всесторонних тестов на разные типы операций.
CrystalDiskMark
Здесь я не смог найти описания, но насколько понимаю, в этой программе запускаются тесты на последовательную запись\чтение и на случайную запись\чтение + те же тесты, но с глубиной очереди равной 32.
Hardinfo
Просто оставлю это здесь: CPU Blowfish, CPU CryptoHash, CPU Fibonacci, CPU N-Queens, FPU FFT, FPU Raytracing.
Результаты
GeekBench
Результаты многоядерного тестирования самые интересные, если посмотрим информацию о тестируемых системах, мы можем обратить внимание, что AWS и Google Cloud выдают такую картину: Intel Xeon @ xxx GHz 1 processor, 2 cores, 4 threads, в то время как Azure дает «честные» ядра: Intel Xeon E5-2673 v3 @ ххх GHz 1 processor, 4 cores. Я подозреваю, что в этом причина почти полуторакратного разрыва в производительности. Чем больше цифра в тесте, тем лучше.
Cloud | GeekBench Score (1) | Цена за час | Perf Score / Цена (2) |
---|---|---|---|
AWS | 6568.6 | $0.406 | 16 177 |
Azure | 9508.4 | $0.422 | 22 530 |
6188.2 | $0.306 | 20 222 |
Итого: Azure, AWS, Google Cloud.
Более подробные результаты можно посмотреть в репозитории.
CrystalDiskMark
Результаты CrystalDiskMark самые неоднозначные, но скорее всего такая разница обусловлена тем, что платформы Google Cloud\AWS необходимо дополнительно конфигурировать для достижения оптимальной производительности, в то время как Azure в конфигурации по умолчанию показывают хорошую производительность. Кроме того, я совершенно не учитываю цену, так как её довольно сложно подсчитать. Чем больше цифры в тестах, тем лучше.
В данной конфигурации Azure оставил конкурентов далеко позади по всем показателям: последовательное чтение\запись, «рандом» 4к чтение\запись, «рандом» 4к чтение\запись с глубинной очереди равной 32. Я думаю результат интересный, потому что это машины по умолчанию, следовательно, это результат, который получит среднестатистический пользователь.
Итого: Azure, AWS, Google
Hardinfo
Интерпретацию результатов тестов Hardinfo я оставлю читателям. Все участники теста показали приблизительно одинаковый результат.
Выводы
Все облака имеют свои сильные и слабые стороны:
- Google – отличную систему дисконтирования, которая включается автоматически и, на первый взгляд, действительно дает большой бонус.
- Amazon – очень сильный с точки зрения доверия к бренду и наиболее популярная платформа.
- Azurе – имеет преимущество в производительности за счет продажи настоящих ядер, а не виртуальных hyper-threading threads (vCPU).
При пересчете мощности в денежном выражении, картина несколько меняется и Google с 30% скидкой начинает проигрывать платформе Azure в среднем на ~10%, хотя при сравнении в лоб калькуляторов обоих платформ может показаться совсем обратная картина. Amazon, к сожалению, начинает проигрывать на 28% в деньгах за производительность по тестам GeekBench.
Естественно эти тесты являются синтетическими и для каждого отдельного решения или приложения нужно проводить специализированные нагрузки, но это может быть хорошей отправной базовой точкой при выборе.
Комментарии (17)
savostin
19.05.2017 10:45** Цена с 30% скидкой при условии использования виртуальной машины 24/7 в месяц.
Скорее при условии работы не более 24 часов и большой вероятностью принудительного вырубания машины.
Или я не прав?hippoage
19.05.2017 11:28Не, это про «Sustained use discounts»: Automatically up to 30%-off workloads that run for a significant portion of the billing month on Compute Engine and Cloud SQL. Google автоматически применяет «оптовые» (месячные) цены. При этом у Amazon и Azure бывают скидки для крупных компаний.
le1ic
19.05.2017 17:09Вы считаете, что в рамках одного провайдера все инстансы имеют одинаковую производительность?
4c74356b41
19.05.2017 20:17Нет, но я не могу протестировать все инстансы, я выбрал самые, на мой взгляд, «удобные» по конфигурации инстансы. Я не помню где, но где-то читал что 2-4 ядра — самые покупаемые предложения.
Эти конкретные инстансы из категории «обычные» (а значит наиболее используемые), т.е. не memory optimized, не compute optimized и т.д. и последнего поколения (DS V2, m4.xlarge, у Гугла я не нашел поколений).le1ic
21.05.2017 08:36Ок, мой намек не понят. Вы про типы инстансов, а не про инстансы. Тогда говорю по-русски: если вы возьмете две инстанции m4.xlarge, то у них разброс по производительности может быть о-го-го. Били даже статьи, где ребята оптимизировали производительность своего пула постоянно подкупая новые инстанции и выкидывая самые медленные.
4c74356b41
21.05.2017 10:39Тогда уж и время суток зависит. Я ради интереса запустил еще 2 машины на Azure в регионе South Central US и только geekbench запустил: 9620, 9717. В целом согласен, разброс есть, но тестировать не 1, а скажем 3 виртуальные машины + 4 разных временных интервала + в разных регионах + на 3 разных провайдерах. Простите, но я меня нет на это времени :) и денег :)
Мои результаты и методики опубликованы, Вы можете повторить моё исследование и опубликовать свои результаты :)le1ic
22.05.2017 17:46Неинтересно. Я делал это года 4 назад. А главное – облачную платформу выбирают не по производительности ядер в чистом Compute сервисе.
Fahrenheit
19.05.2017 21:30Мне кажется, что в случае AWS стоило использовать для сравнения стоимость reserved instances, раз уж мы говорим про долгоживующие приложения. Хотя, конечно, автоматическая скидка у GCE — хорошая идея.
4c74356b41
20.05.2017 09:54Я, честно говоря, никогда про них не слышал :) сейчас почитал, там нужно минимум на год покупать инстанс. Мне кажется это не совсем честное сравнение. Тогда и Azure можно купить инстанс на год или по какие-то другим соглашениям (я просто не очень в это силен, я не директор ИТ отдела, я инженер).
apple_rom
23.05.2017 15:32В статье используется термин «обычный пользователь», тогда в случае Amazon AWS я бы рекомендовал инстанс t2.xlarge с такими же характеристиками (4 ядра, 16 ГБ памяти) за $0.257 (x64/Windows/Frankfurt). Да, у него есть моменты (особенности инстансов линейки T2), но стоимость и «настоящие» четыре ядра (не гипертрейдинг), предположу, поставили бы его на первое место в ваших тестах (по скорости, не говоря уже о стоимости).
Рассматривать (равно как и сравнивать) облака по производительности, которая (сильно) зависит от настройки и конкретных целей использования — весьма бесперспективное занятие. И, да, ценовая политика ещё более всё путает — кроме упомянутых Reserved Instance вы же не сравнивали Spot-инстансы, которые конкретно на данный момент для тестируемых вами m4.xlarge стоят:
Это не умаляет ваших тестов, все делают подобную ошибку, пытаясь разобраться «а что же лучше/выгодней». Лишь после, с опытом, приходит понимание, что, оказывается, производительность и «выгодность» — это вторично, а первична экосистема предлагаемых провайдером сервисов, их законченность, интеграция в ваши процессы, удобность поддержки и эксплуатации.gaploid
23.05.2017 18:51А там же вроде эти t2 дают кратковременный boost, ну то есть оно не будет так работать 24/7 ну или будет, то вроде придется дополнительно заплатить. Это все таки специализированные виртуальные машины, у гугл вон есть preemptible, которые раза в два дешевле, но есть нюансы. Поэтому тут в сравнении брали самые обычные виртуалки, что мне кажется может быть как один из параметров сравнения. Экосистема это тоже важно, но ее сложно сравнить.
apple_rom
24.05.2017 09:13Всё же стоит уточнить, что «кратковременный boost», применительно для указанных — это 5.4 часов в сутки, что отлично подходит большинству «обычных» задач. Вы правильно добавили про «нюансы Google», лишний раз подтвердив, скажем дипломатично, «сложность сравнения» даже выраженной в конкретных цифрах стоимости аренды, не говоря уже про всё остальное (что, всё же, важней — если не рассматривать облака как «просто хостинг»).
ALexhha
Т.е. по вашему облачных провайдеров стоит сравнивать на базе производительности виртуальных машин? Серьезно!
gaploid
Это один из параметров, почему нет?
ALexhha
потому, что сравнивать самолет с машиной только на основании макс скорости очень глупо, имхо
4c74356b41
Возможно мне стоило указать что я тестировал только IaaS предложения (и, конечно, не все). Но, в целом, я думаю очевидно, что невозможно протестировать все сотни сервисов что предлагают эти 3 платформы. IaaS один из самых популярных и понятных сервисов.