Сравнение производительности серверов на базе ARM в GCP, AWS и Azure
Shirui Zhao
August 12, 2022
Предыстория
Архитектура микропроцессоров 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:

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-приложения. Основные модели представлены ниже:

Виртуальные машины Azure на базе ARM
В апреле Microsoft анонсировала предварительный просмотр семейства виртуальных машин Azure на базе процессоров Ampere® Altra® Arm. Новые виртуальные машины предназначены для эффективного выполнения масштабируемых рабочих нагрузок, веб-серверов, серверов приложений, открытых баз данных, облачных и богатых .NET-приложений, Java-приложений, игровых серверов, медиа-серверов и многого другого. Новая серия виртуальных машин включает в себя универсальные 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 в облачной архитектуре.

Далее мы будем использовать официальный открытый скрипт тестирования производительности APISIX.
Тестовый сценарий
Мы протестируем производительность Apache APISIX в двух типичных сценариях, чтобы получить более реалистичные и богатые данные:
- Сценарий 1: Один вышестоящий сервер. В этом сценарии используется один вышестоящий сервер (без каких-либо плагинов) для тестирования производительности APISIX в режиме чистого прокси-сервера.
- Сценарий 2: Один вышестоящий сервер + несколько плагинов. В этом сценарии используется один вышестоящий сервер с несколькими плагинами, и здесь используются два плагина. Основное внимание уделяется тестированию производительности APISIX при включении двух основных плагинов, потребляющих производительность:
limit-countиprometheus.
Результаты тестирования
На следующем рисунке показаны результаты тестирования 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 / vCPU | 1 | 2 | 4 | 8 | 16 | 32 | 64 |
|---|---|---|---|---|---|---|---|
| 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.3 | 36.3 |
| GCP t2a-standard-2 | $674.5 | 16.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 может быть еще больше улучшено при использовании нескольких ядер.