Сравнение производительности серверов на базе ARM в GCP, AWS и Azure

Shirui Zhao

August 12, 2022

Ecosystem

Предыстория

Архитектура микропроцессоров RISC использует высокооптимизированный набор инструкций, что позволяет небольшим процессорам эффективно выполнять сложные задачи. ARM стала краеугольным камнем крупнейшей в мире экосистемы вычислений и мобильных устройств, и многие эксперты считают её будущим облачных вычислений благодаря низкому энергопотреблению, гибкому лицензированию и низкой стоимости.

Поэтому ведущие облачные провайдеры, такие как AWS, Google Cloud Platform (GCP) и Azure, последовательно запустили серверы с архитектурой ARM. Среди них AWS в 2018 году представила первый серверный процессор AWS Graviton на базе архитектуры ARM.

AWS Graviton

AWS Graviton — это серия серверных процессоров на базе архитектуры ARM, выпущенных AWS в 2018 году. Первое поколение процессоров AWS Graviton использует кастомные чипы и 64-битные ядра Neoverse.

Выпущенные в 2020 году процессоры AWS Graviton2 представляют собой значительный скачок в производительности и функциональности по сравнению с процессорами первого поколения AWS Graviton. Они обеспечивают 7-кратное увеличение производительности, 4-кратное увеличение количества ядер, 2-кратный объем кэша, 5-кратное ускорение памяти и многое другое.

Последние процессоры AWS Graviton3, выпущенные в конце мая 2022 года, основаны на более продвинутом дизайне Neoverse V1. Они предлагают до двух раз больше производительности в операциях с плавающей запятой, двухкратное увеличение криптографической производительности и трехкратное увеличение производительности в задачах машинного обучения по сравнению с процессорами AWS Graviton2, включая поддержку bfloat16. На следующем рисунке показаны основные модели, оснащенные процессорами AWS Graviton3:

Процессоры AWS Graviton3

Google Cloud Platform T2A

Виртуальная машина Google Cloud Platform (GCP) Tau T2A — это предварительный просмотр первой виртуальной машины Google на базе ARM, представленной в июле 2022 года. Она работает на процессорах Ampere® Altra® Arm, основанных на дизайне Neoverse N1. Виртуальные машины Tau T2A доступны в различных предопределенных конфигурациях с до 48 виртуальных CPU на одну виртуальную машину и 4 ГБ памяти на каждый виртуальный CPU.

Они предлагают до 32 Гбит/с пропускной способности сети и широкий выбор вариантов сетевого хранилища, что делает виртуальные машины Tau T2A подходящими для масштабируемых рабочих нагрузок, включая веб-серверы, контейнеризированные микросервисы, обработку данных, транскодирование медиа и Java-приложения. Основные модели представлены ниже:

Виртуальные машины Tau T2A

Виртуальные машины Azure на базе ARM

В апреле Microsoft анонсировала предварительный просмотр семейства виртуальных машин Azure на базе процессоров Ampere® Altra® Arm. Новые виртуальные машины предназначены для эффективного выполнения масштабируемых рабочих нагрузок, веб-серверов, серверов приложений, открытых баз данных, облачных и богатых .NET-приложений, Java-приложений, игровых серверов, медиа-серверов и многого другого. Новая серия виртуальных машин включает в себя универсальные Dpsv5 и оптимизированные по памяти Epsv5 виртуальные машины. Основные модели представлены ниже:

Виртуальные машины Dpsv5 и Epsv5

Тестирование производительности ARM-серверов трех облачных провайдеров

В этой статье мы отразим общую производительность каждого сервера, тестируя производительность одного ядра. Здесь выбран сетевой IO-интенсивный API-шлюз Apache APISIX, который привязывается к одному ядру CPU для стресс-тестирования на трех моделях: AWS c7g.large, GCP t2a-standard-2 и Azure D2ps v5 (относящейся к серии Dpsv5, двухъядерный CPU), и анализируется производительность сервера через два показателя: QPS и задержка ответа.

Apache APISIX — это облачный, высокопроизводительный, масштабируемый API-шлюз. Основанный на NGNIX + LuaJIT и etcd, APISIX обладает характеристиками динамической маршрутизации и горячей загрузки плагинов по сравнению с традиционными API-шлюзами, что особенно подходит для управления API в облачной архитектуре.

Apache APISIX

Далее мы будем использовать официальный открытый скрипт тестирования производительности APISIX.

Тестовый сценарий

Мы протестируем производительность Apache APISIX в двух типичных сценариях, чтобы получить более реалистичные и богатые данные:

  • Сценарий 1: Один вышестоящий сервер. В этом сценарии используется один вышестоящий сервер (без каких-либо плагинов) для тестирования производительности APISIX в режиме чистого прокси-сервера.
  • Сценарий 2: Один вышестоящий сервер + несколько плагинов. В этом сценарии используется один вышестоящий сервер с несколькими плагинами, и здесь используются два плагина. Основное внимание уделяется тестированию производительности APISIX при включении двух основных плагинов, потребляющих производительность: limit-count и prometheus.

Результаты тестирования

На следующем рисунке показаны результаты тестирования QPS (запросов в секунду), и чем выше число, тем лучше производительность.

Результаты QPS

На следующем рисунке показаны результаты тестирования задержки ответа в миллисекундах. Чем меньше число, тем лучше производительность.

Результаты задержки ответа

С точки зрения QPS и задержки ответа, в сетевых IO-интенсивных API-шлюзах, таких как Apache APISIX, AWS C7g демонстрирует 100% улучшение производительности по сравнению с GCP T2A, а Azure Dpsv5 имеет преимущество в производительности около 15% по сравнению с GCP T2A.

Сравнение стоимости и производительности

Поскольку эта статья сосредоточена только на тестировании производительности ARM-машин от разных облачных провайдеров, мы проигнорируем изменение "одинакового количества ядер CPU с разным объемом памяти" и проанализируем соотношение стоимости и производительности AWS Graviton3 и GCP T2A только с точки зрения количества ядер CPU.

В текущем тестовом сценарии соотношение стоимости и производительности можно понимать как: QPS/стоимость.

В таблице ниже сравниваются почасовые цены на серверы с разным количеством ядер для AWS C7g (US East Ohio), GCP T2A (us-central1) и Azure Dpsv5 (East US):

Серия VM / vCPU1248163264
AWS C7g$0.0361$0.0723$0.1445$0.289$0.5781$1.1562$1.7342
GCP T2A$0.0385$0.077$0.154$0.308$0.616$1.232$1.848
Azure Dpsv5*$0.077$0.154$0.308$0.616$1.232$1.848

В следующей таблице приведены стоимость и соотношение стоимости и производительности AWS c7g.large и GCP t2a-standard-2 за один год, с учетом данных QPS для одного вышестоящего сервера в тесте производительности Apache APISIX. Чем больше число, тем выше QPS можно получить за единицу стоимости.

Годовая стоимостьСоотношение стоимости и производительности (QPS/стоимость)
AWS c7g.large$633.336.3
GCP t2a-standard-2$674.516.8
Azure D2ps v5$398.0 (41% скидка)33.6

Из результатов тестирования видно, что AWS C7g более экономически эффективен, чем GCP T2A и Azure Dpsv5. Хотя Azure Dpsv5 имеет лишь 15% улучшение производительности по сравнению с GCP T2A, соотношение стоимости и производительности почти вдвое выше.

Итог

AWS представила первый процессор на базе ARM, AWS Graviton, в 2018 году. Это было примерно на 4 года раньше, чем GCP, в области развертывания серверов на базе ARM. Сейчас процессор AWS Graviton развился до третьего поколения.

По результатам тестирования производительности и анализа соотношения стоимости и производительности Apache APISIX, мы видим, что AWS Graviton3 обладает более высокой производительностью и экономической эффективностью по сравнению с GCP T2A и Azure Dpsv5. Это неразрывно связано с тем, что AWS уже много лет активно развивает направление серверов на базе ARM.

Кроме того, в ходе тестирования мы использовали Apache APISIX с привязкой к одному ядру, и соотношение стоимости и производительности AWS Graviton 3 может быть еще больше улучшено при использовании нескольких ядер.

Ссылки

Tags: