Тестируем облачные платформы из Топ-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.

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

    Подробнее
    Реклама
    Комментарии 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 мб/с.

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

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