Самые производительные инстансы у каждого провайдера
Компания Cockroach Labs, которая занимается бизнесом с распределёнными SQL, проанализировала производительность публичных облаков и опубликовала результаты сравнительного тестирования.
Тестеры пришли к выводу, что облачная платформа Google выигрывает по пропускной способности, а AWS лидирует по производительности CPU и минимальной сетевой задержке. Но кому-то важнее соотношение цена/производительность. Такие тесты тоже провели.
Cockroach Labs впервые опубликовала отчёт с производительностью облачных провайдеров в 2018 году. Тогда она пояснила, зачем всё это надо: «Мы стремимся разработать продукт, который одинаково работает на любых облаках, поэтому приняли решение поднять тестовые кластеры на всех трёх ведущих американских облачных провайдерах».
Исследователи измерили производительность CPU, сети, хранилища и онлайн-обработки транзакций (OLTP). В первый год исследователи сообщили, что «AWS превосходит GCP почти по всем критериям, которые мы тестировали, включая стоимость». Azure в 2018 году не тестировалась.
В 2020 году новый тест показал относительно похожую производительность AWS, Azure и GCP, а вывод заключался в том, что «GCP сильно улучшил свои показатели в 2020 году, опередив AWS и Azure по соотношению цена/производительность, но немного уступая AWS и Azure по максимальному количеству запросов в минуту в кластере из трёх нод».
В 2021 году исследователи провели сравнительный анализ 54 различных типов виртуальных машин и выполнили почти 1000 тестовых запусков. Бенчмарк-скрипты с открытыми исходниками опубликованы на Github. Ни один из трёх провайдеров не провалился в тестах. Более того, каждый из них победил в каких-то отдельных категориях. Тесты ограничились только виртуальными машинами и не охватывали множество других услуг, предлагаемых облачными провайдерами.
Каждый из трёх провайдеров победил в каких-то отдельных категориях
Если посмотреть в целом, то AWS предлагаем самый экономичный вариант инстанса и минимальные сетевые задержки. В отчёте также сказано, что ARM-процессор Graviton «лучше всего показал себя в тесте многоядерных процессоров». Однако AWS проиграла по производительности I/O памяти и в тесте одноядерных процессоров.
Ключевой метрикой в отчете является TPM (throughput per minute, пропускная способность в минуту). Это количество запросов, обрабатываемых в минуту.
Azure «показала сопоставимую с GCP и AWS производительность TPM, превзошла AWS в производительности операций I/O, а также выиграла по производительности хранилища в IOPS и минимальной задержке записи на диск. Но за это придётся заплатить. По цене Azure является «наименее рентабельным облачным провайдером с точки зрения соотношения цены и TPM.
GCP обладает наилучшей производительностью одноядерного процессора и «наибольшей пропускной способностью на всех уровнях», сказано в отчёте. Система Google превзошла AWS и Azure «по пропускной способности сети и производительности I/O хранилища (чтение и запись)».
Следующая диаграмма показывает наиболее экономичную машину, исходя из соотношения затрат на TPM.
У AWS небольшое преимущество по экономической эффективности, в то время как Azure показывает хорошую производительность, но при существенно более высоких затратах.
По эффективности затрат в течение трёх лет победителем признана AWS с показателем $0,81/TPM, за ней следует GCP с показателем $0,92/TPM и Azure с показателем $0,95/TPM.
В тестах на максимальную производительность выиграла GCP с показателем TPM = 37 048, за ней Azure с показателем 36 952 и AWS с 36 627. Хотя, опять же, из этих инстансов у Azure самые дорогое предложение с $1,49/TPM по сравнению с GCP по $1,01/TPM и AWS по $0,97/TPM.
Тестеры отмечают, что Azure показывает максимальную производительность при использовании ультра-дисков (продукт Ultra Disk).
Процессоры AWS Graviton2 показали лучшие результаты, чем AMD при многопроцессорном масштабировании, но не с огромным отрывом: «Машины GCP и Azure показали результат на 5% и 7% ниже, соответственно», — сказано в отчёте.
GCP высоко оценили за пропускную способность сети: «Высокопроизводительная машина GCP показала пропускную способность на 165% и 237% больше, чем AWS и Azure, соответственно», — говорится в отчёте. Это не столько техническое преимущество, сколько то, что «GCP просто сделал более доступной полосу пропускания». Исследователи были разочарованы AWS в этом отношении: «Ожидалось, что пропускная способность сети составит до 25 Гбит/с, но в наших тестах она составляла в среднем 5 Гбит/с». Эти результаты AWS стали «по общему признанию удивительными», и команда провела десять независимых экспериментов, чтобы подтвердить такие результаты.
Подробный отчёт полезен не только тем, кто сравнивает облачных провайдеров, но и тем, кто пытается разобраться в плюсах и минусах различных типов виртуальных машин из огромного количества доступных вариантов.
В целом, Cockroach Labs пишет, что объявить победителя оказалось намного сложнее, чем в прошлые годы. GCP заняла первое место по показателю «лучшая общая производительность по набору критериев», но AWS выиграла по показателю экономической эффективности, что может быть более важным показателем для некоторых случаев, в то время как Azure получила признание за своё хранилище с ультра-дисками для тех случаев, когда стоимость не является ключевым фактором.
Главное помнить, что ситуация на рынке быстро меняется и этот отчёт устареет уже буквально через несколько месяцев. «Каждый из облачных провайдеров показал общий рост производительности машин по сравнению с 2020 годом», — сказали исследователи, подтверждая тенденцию к постоянному повышению производительности.
jakshi
Интересно было бы увидеть сравнение с актуальной версией AWS EBS — gp3, в тестах используется предыдущая устаревшая версия AWS EBS — gp2.