Привет, Хабр! Хочу поделиться своими результатами сравнения облачных платформ AWS, Azure и Google. Под катом – результаты по производительности, которые получает обычный пользователь, и их сравнение по критерию «цена/качество».

image

Для начала я ввел такой показатель как количество очков, получаемое средствами тестирования, деленное на стоимость данной виртуальной машины в час. Для сравнения производительности виртуальных машин использовались следующие «инстансы»:
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)*
Google 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 раз последовательно «прогонял» следующие тесты:
  1. GeekBench (только Windows).
  2. CrystalDiskMark (только Windows).
  3. 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
Google 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)


  1. ALexhha
    18.05.2017 22:26
    -4

    Т.е. по вашему облачных провайдеров стоит сравнивать на базе производительности виртуальных машин? Серьезно!


    1. gaploid
      18.05.2017 22:34
      +3

      Это один из параметров, почему нет?


      1. ALexhha
        19.05.2017 12:03
        -2

        потому, что сравнивать самолет с машиной только на основании макс скорости очень глупо, имхо


    1. 4c74356b41
      19.05.2017 07:29
      +4

      Возможно мне стоило указать что я тестировал только IaaS предложения (и, конечно, не все). Но, в целом, я думаю очевидно, что невозможно протестировать все сотни сервисов что предлагают эти 3 платформы. IaaS один из самых популярных и понятных сервисов.


  1. savostin
    19.05.2017 10:45

    ** Цена с 30% скидкой при условии использования виртуальной машины 24/7 в месяц.

    Скорее при условии работы не более 24 часов и большой вероятностью принудительного вырубания машины.
    Или я не прав?


    1. 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 бывают скидки для крупных компаний.


      1. 4c74356b41
        19.05.2017 12:02

        Именно, «оптовые» цены, спасибо.


  1. le1ic
    19.05.2017 17:09

    Вы считаете, что в рамках одного провайдера все инстансы имеют одинаковую производительность?


    1. 4c74356b41
      19.05.2017 20:17

      Нет, но я не могу протестировать все инстансы, я выбрал самые, на мой взгляд, «удобные» по конфигурации инстансы. Я не помню где, но где-то читал что 2-4 ядра — самые покупаемые предложения.

      Эти конкретные инстансы из категории «обычные» (а значит наиболее используемые), т.е. не memory optimized, не compute optimized и т.д. и последнего поколения (DS V2, m4.xlarge, у Гугла я не нашел поколений).


      1. le1ic
        21.05.2017 08:36

        Ок, мой намек не понят. Вы про типы инстансов, а не про инстансы. Тогда говорю по-русски: если вы возьмете две инстанции m4.xlarge, то у них разброс по производительности может быть о-го-го. Били даже статьи, где ребята оптимизировали производительность своего пула постоянно подкупая новые инстанции и выкидывая самые медленные.


        1. 4c74356b41
          21.05.2017 10:39

          Тогда уж и время суток зависит. Я ради интереса запустил еще 2 машины на Azure в регионе South Central US и только geekbench запустил: 9620, 9717. В целом согласен, разброс есть, но тестировать не 1, а скажем 3 виртуальные машины + 4 разных временных интервала + в разных регионах + на 3 разных провайдерах. Простите, но я меня нет на это времени :) и денег :)

          Мои результаты и методики опубликованы, Вы можете повторить моё исследование и опубликовать свои результаты :)


          1. le1ic
            22.05.2017 17:46

            Неинтересно. Я делал это года 4 назад. А главное – облачную платформу выбирают не по производительности ядер в чистом Compute сервисе.


  1. Fahrenheit
    19.05.2017 21:30

    Мне кажется, что в случае AWS стоило использовать для сравнения стоимость reserved instances, раз уж мы говорим про долгоживующие приложения. Хотя, конечно, автоматическая скидка у GCE — хорошая идея.


    1. 4c74356b41
      20.05.2017 09:54

      Я, честно говоря, никогда про них не слышал :) сейчас почитал, там нужно минимум на год покупать инстанс. Мне кажется это не совсем честное сравнение. Тогда и Azure можно купить инстанс на год или по какие-то другим соглашениям (я просто не очень в это силен, я не директор ИТ отдела, я инженер).


  1. apple_rom
    23.05.2017 15:32

    В статье используется термин «обычный пользователь», тогда в случае Amazon AWS я бы рекомендовал инстанс t2.xlarge с такими же характеристиками (4 ядра, 16 ГБ памяти) за $0.257 (x64/Windows/Frankfurt). Да, у него есть моменты (особенности инстансов линейки T2), но стоимость и «настоящие» четыре ядра (не гипертрейдинг), предположу, поставили бы его на первое место в ваших тестах (по скорости, не говоря уже о стоимости).
    Рассматривать (равно как и сравнивать) облака по производительности, которая (сильно) зависит от настройки и конкретных целей использования — весьма бесперспективное занятие. И, да, ценовая политика ещё более всё путает — кроме упомянутых Reserved Instance вы же не сравнивали Spot-инстансы, которые конкретно на данный момент для тестируемых вами m4.xlarge стоят:
    image
    Это не умаляет ваших тестов, все делают подобную ошибку, пытаясь разобраться «а что же лучше/выгодней». Лишь после, с опытом, приходит понимание, что, оказывается, производительность и «выгодность» — это вторично, а первична экосистема предлагаемых провайдером сервисов, их законченность, интеграция в ваши процессы, удобность поддержки и эксплуатации.


    1. gaploid
      23.05.2017 18:51

      А там же вроде эти t2 дают кратковременный boost, ну то есть оно не будет так работать 24/7 ну или будет, то вроде придется дополнительно заплатить. Это все таки специализированные виртуальные машины, у гугл вон есть preemptible, которые раза в два дешевле, но есть нюансы. Поэтому тут в сравнении брали самые обычные виртуалки, что мне кажется может быть как один из параметров сравнения. Экосистема это тоже важно, но ее сложно сравнить.


      1. apple_rom
        24.05.2017 09:13

        Всё же стоит уточнить, что «кратковременный boost», применительно для указанных — это 5.4 часов в сутки, что отлично подходит большинству «обычных» задач. Вы правильно добавили про «нюансы Google», лишний раз подтвердив, скажем дипломатично, «сложность сравнения» даже выраженной в конкретных цифрах стоимости аренды, не говоря уже про всё остальное (что, всё же, важней — если не рассматривать облака как «просто хостинг»).