Тестируем облачные платформы из Топ-3

    Привет, Хабр! Хочу поделиться своими результатами сравнения облачных платформ 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.

    Естественно эти тесты являются синтетическими и для каждого отдельного решения или приложения нужно проводить специализированные нагрузки, но это может быть хорошей отправной базовой точкой при выборе.
    Поделиться публикацией
    Комментарии 18
      –4
      Т.е. по вашему облачных провайдеров стоит сравнивать на базе производительности виртуальных машин? Серьезно!
        +3
        Это один из параметров, почему нет?
          –2
          потому, что сравнивать самолет с машиной только на основании макс скорости очень глупо, имхо
          +4
          Возможно мне стоило указать что я тестировал только IaaS предложения (и, конечно, не все). Но, в целом, я думаю очевидно, что невозможно протестировать все сотни сервисов что предлагают эти 3 платформы. IaaS один из самых популярных и понятных сервисов.
          0
          ** Цена с 30% скидкой при условии использования виртуальной машины 24/7 в месяц.

          Скорее при условии работы не более 24 часов и большой вероятностью принудительного вырубания машины.
          Или я не прав?
            0
            Не, это про «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 бывают скидки для крупных компаний.
              0
              Именно, «оптовые» цены, спасибо.
            0
            Вы считаете, что в рамках одного провайдера все инстансы имеют одинаковую производительность?
              0
              Нет, но я не могу протестировать все инстансы, я выбрал самые, на мой взгляд, «удобные» по конфигурации инстансы. Я не помню где, но где-то читал что 2-4 ядра — самые покупаемые предложения.

              Эти конкретные инстансы из категории «обычные» (а значит наиболее используемые), т.е. не memory optimized, не compute optimized и т.д. и последнего поколения (DS V2, m4.xlarge, у Гугла я не нашел поколений).
                0
                Ок, мой намек не понят. Вы про типы инстансов, а не про инстансы. Тогда говорю по-русски: если вы возьмете две инстанции m4.xlarge, то у них разброс по производительности может быть о-го-го. Били даже статьи, где ребята оптимизировали производительность своего пула постоянно подкупая новые инстанции и выкидывая самые медленные.
                  0
                  Тогда уж и время суток зависит. Я ради интереса запустил еще 2 машины на Azure в регионе South Central US и только geekbench запустил: 9620, 9717. В целом согласен, разброс есть, но тестировать не 1, а скажем 3 виртуальные машины + 4 разных временных интервала + в разных регионах + на 3 разных провайдерах. Простите, но я меня нет на это времени :) и денег :)

                  Мои результаты и методики опубликованы, Вы можете повторить моё исследование и опубликовать свои результаты :)
                    0
                    Неинтересно. Я делал это года 4 назад. А главное – облачную платформу выбирают не по производительности ядер в чистом Compute сервисе.
              0
              Мне кажется, что в случае AWS стоило использовать для сравнения стоимость reserved instances, раз уж мы говорим про долгоживующие приложения. Хотя, конечно, автоматическая скидка у GCE — хорошая идея.
                0
                Я, честно говоря, никогда про них не слышал :) сейчас почитал, там нужно минимум на год покупать инстанс. Мне кажется это не совсем честное сравнение. Тогда и Azure можно купить инстанс на год или по какие-то другим соглашениям (я просто не очень в это силен, я не директор ИТ отдела, я инженер).
                0
                В статье используется термин «обычный пользователь», тогда в случае Amazon AWS я бы рекомендовал инстанс t2.xlarge с такими же характеристиками (4 ядра, 16 ГБ памяти) за $0.257 (x64/Windows/Frankfurt). Да, у него есть моменты (особенности инстансов линейки T2), но стоимость и «настоящие» четыре ядра (не гипертрейдинг), предположу, поставили бы его на первое место в ваших тестах (по скорости, не говоря уже о стоимости).
                Рассматривать (равно как и сравнивать) облака по производительности, которая (сильно) зависит от настройки и конкретных целей использования — весьма бесперспективное занятие. И, да, ценовая политика ещё более всё путает — кроме упомянутых Reserved Instance вы же не сравнивали Spot-инстансы, которые конкретно на данный момент для тестируемых вами m4.xlarge стоят:
                image
                Это не умаляет ваших тестов, все делают подобную ошибку, пытаясь разобраться «а что же лучше/выгодней». Лишь после, с опытом, приходит понимание, что, оказывается, производительность и «выгодность» — это вторично, а первична экосистема предлагаемых провайдером сервисов, их законченность, интеграция в ваши процессы, удобность поддержки и эксплуатации.
                  0
                  А там же вроде эти t2 дают кратковременный boost, ну то есть оно не будет так работать 24/7 ну или будет, то вроде придется дополнительно заплатить. Это все таки специализированные виртуальные машины, у гугл вон есть preemptible, которые раза в два дешевле, но есть нюансы. Поэтому тут в сравнении брали самые обычные виртуалки, что мне кажется может быть как один из параметров сравнения. Экосистема это тоже важно, но ее сложно сравнить.
                    0
                    Всё же стоит уточнить, что «кратковременный boost», применительно для указанных — это 5.4 часов в сутки, что отлично подходит большинству «обычных» задач. Вы правильно добавили про «нюансы Google», лишний раз подтвердив, скажем дипломатично, «сложность сравнения» даже выраженной в конкретных цифрах стоимости аренды, не говоря уже про всё остальное (что, всё же, важней — если не рассматривать облака как «просто хостинг»).
                  0
                  Протестировал свою виртуалку на Windows Server 4 ядра 16 гб памяти в Azure Pack Infrastructure (InfoboxCloud) $0.21/h.

                  GeekBench 8770
                  CrystalDiskMark seq read 1478 мб/с, seq. write 704 мб/с, rand. read 252 мб/с, rand write 465 мб/с.

                  Аптайм уже больше года.

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

                  Самое читаемое