Привет, Хабр! Хочу поделиться своими результатами сравнения облачных платформ AWS, Azure и Google. Под катом – результаты по производительности, которые получает обычный пользователь, и их сравнение по критерию «цена/качество».
Для начала я ввел такой показатель как количество очков, получаемое средствами тестирования, деленное на стоимость данной виртуальной машины в час. Для сравнения производительности виртуальных машин использовались следующие «инстансы»:
* Текущая цена на промо позиции, в скобках обычная цена.
** Цена с 30% скидкой при условии использования виртуальной машины 24/7 в месяц.
update: уже после публикации статьи появилась новость про ОС диски меньшего размера в Azure, которые позволяют экономить еще порядка $2.18 в месяц. Результаты это никак не меняет, но позволяет экономить порядка 0.8% от цены виртуальной машины (Standard D3 v2).
Все «инстансы» были «подняты» в Европе – Ирландия\Германия\Бельгия. Создание происходило через соответствующие порталы облачных провайдеров. Для инстансов использовались SSD различных конфигураций:
Для того чтобы тесты были максимально объективными, я никак не настраивал виртуальные машины. Все «инстансы» используют Windows Server 2016, а для последнего теста – Ubuntu 16.04.02 LTS. Также я отказался от каких-либо настроек ОС и пришлось установить GeekBench для проведения тестов. Я использовал триальные версии с сайтов производителя. С помощью apt-get для Ubuntu был установлен «бенчмарк» Hardinfo. Это единственные настройки, произведенные с операционной системой перед запуском тестов.
На всех виртуальных машинах я 5 раз последовательно «прогонял» следующие тесты:
Максимально подробное описание я нашел по ссылке. Кратко говоря, общее количество тестов – 23, они разделены на несколько категорий – Cryptography, Integer, Floating Point, Memory. Но на самом деле, в результатах 25 тестов, возможно потому что у меня более новая версия. В тестах используются операции сжатия, работа с JPEG, парсинг HTML, SQLite. Я бы назвал его одним из самых всесторонних тестов на разные типы операций.
Здесь я не смог найти описания, но насколько понимаю, в этой программе запускаются тесты на последовательную запись\чтение и на случайную запись\чтение + те же тесты, но с глубиной очереди равной 32.
Просто оставлю это здесь: CPU Blowfish, CPU CryptoHash, CPU Fibonacci, CPU N-Queens, FPU FFT, FPU Raytracing.
Результаты многоядерного тестирования самые интересные, если посмотрим информацию о тестируемых системах, мы можем обратить внимание, что AWS и Google Cloud выдают такую картину: Intel Xeon @ xxx GHz 1 processor, 2 cores, 4 threads, в то время как Azure дает «честные» ядра: Intel Xeon E5-2673 v3 @ ххх GHz 1 processor, 4 cores. Я подозреваю, что в этом причина почти полуторакратного разрыва в производительности. Чем больше цифра в тесте, тем лучше.
Итого: Azure, AWS, Google Cloud.
Более подробные результаты можно посмотреть в репозитории.
Результаты CrystalDiskMark самые неоднозначные, но скорее всего такая разница обусловлена тем, что платформы Google Cloud\AWS необходимо дополнительно конфигурировать для достижения оптимальной производительности, в то время как Azure в конфигурации по умолчанию показывают хорошую производительность. Кроме того, я совершенно не учитываю цену, так как её довольно сложно подсчитать. Чем больше цифры в тестах, тем лучше.
В данной конфигурации Azure оставил конкурентов далеко позади по всем показателям: последовательное чтение\запись, «рандом» 4к чтение\запись, «рандом» 4к чтение\запись с глубинной очереди равной 32. Я думаю результат интересный, потому что это машины по умолчанию, следовательно, это результат, который получит среднестатистический пользователь.
Итого: Azure, AWS, Google
Интерпретацию результатов тестов Hardinfo я оставлю читателям. Все участники теста показали приблизительно одинаковый результат.
Все облака имеют свои сильные и слабые стороны:
При пересчете мощности в денежном выражении, картина несколько меняется и Google с 30% скидкой начинает проигрывать платформе Azure в среднем на ~10%, хотя при сравнении в лоб калькуляторов обоих платформ может показаться совсем обратная картина. Amazon, к сожалению, начинает проигрывать на 28% в деньгах за производительность по тестам GeekBench.
Естественно эти тесты являются синтетическими и для каждого отдельного решения или приложения нужно проводить специализированные нагрузки, но это может быть хорошей отправной базовой точкой при выборе.
Для начала я ввел такой показатель как количество очков, получаемое средствами тестирования, деленное на стоимость данной виртуальной машины в час. Для сравнения производительности виртуальных машин использовались следующие «инстансы»:
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.
Естественно эти тесты являются синтетическими и для каждого отдельного решения или приложения нужно проводить специализированные нагрузки, но это может быть хорошей отправной базовой точкой при выборе.