Для теста я взял PostgreSQL и старый добрый pgbench. Выбор на СУБД пал потому что было интересно протестировать и сравнить производительность не только виртуальных машин, то и managed database сервисов.
Disclaimer: автор не является ни профессиональным админом, ни DBA, ни специалистом по настройке облачных решений. Тестирование проводилось сугубо в личных целях и на объективность не претендует, поэтому прошу воспринимать статью «as is». Внутри не будет какого-то глубокого разбора, но будет экспресс-сравнение с Selectel VPC (на разных дисках) и различными конфигурациями AWS EC2/RDS в части производительности и стоимости решений. Возможно, это сэкономит кому-то немного времени.
Подробности Yandex.Cloud vs Selectel VPC vs AWS под катом.
Структура сервисов Яндекс.Облака
Структура ресурсов Яндекс.Облака обычная для подобного рода сервисов:
Квоты ресурсов (глобальные)
Каталог (проект)
— Compute Cloud (виртуальные машины и диски)
— Managed Databases (кластеры баз данных, можно запускать базы Clickhouse, MongoDB и PostgreSQL)
— Object Storage (облачное хранилище)
— Virtual Private Cloud (облачные сети)
— API
Подробно описывать интерфейс не вижу смысла, тем более, что документация находится в свободном доступе и из неё многое и так понятно.
Сравниваемые конфигурации
Для всех виртуальных инстансов в тесте были выделены следующие ресурсы:
vCPU: 8 cores
RAM: 32 Gb
Disk: SSD (конкретный класс — см. тестируемые инстансы).
OS: CentOS 7 minimal
Для managed database-сервисов запрашивалась максимально близкая конфигурация (у Яндекса и AWS как раз есть конфигурации с 8CPU/32RAM).
Тестируемая версия Postgres — 10.5. На виртуалки он ставился из пакета postgresql10-server
, а на managed-кластерах выбиралась эта версия из списка.
Методика тестирования
- На чистую ОС устанавливались пакеты
postgresql10-server
иpostgresql10
- Инициализировалась БД для бенчмарка с параметрами:
pgbench -i -s 100
- Три раза прогонялся бенчмарк с параметрами:
pgbench -c 10 -T 60
- Утилита
pgbench
запускалась на той же виртуальной машине, где установлена СУБД, а для managed-кластеров — на виртуальной машине в том же облаке. - В таблицу результатов заносился лучший результат из трёх.
Результаты тестирования
Все результаты экспресс-теста одной таблицей (графики ниже):
Resource | TPS | Price |
---|---|---|
AWS EC2 m5.2xlarge | 2822 | 343 |
AWS EC2 m5d.2xlarge | 2752 | 403 |
AWS EC2 t3.2xlarge | 2636 | 290 |
AWS EC2 t2.2xlarge | 2259 | 320 |
AWS EC2 m4.2xlarge | 2187 | 358 |
Selectel VPC (fast SSD) | 1524 | 186 |
Yandex Cloud Compute Instance | 1309 | 155 |
Yandex Cloud Managed Database | 1226 | 234 |
AWS RDS db.m4.2xlarge (3000 IOPS) | 1200 | 1007 |
AWS RDS db.t2.2xlarge (3000 IOPS) | 1127 | 862 |
AWS RDS db.t2.2xlarge (1000 IOPS) | 970 | 625 |
AWS RDS db.m4.2xlarge (1000 IOPS) | 885 | 769 |
Selectel VPC (universal SSD) | 247 | 164 |
В колонке Price представлена расчётная цена стоимости тестируемого решения в месяц в USD, включая хранилище на 100Gb. Для Amazon RDS, который тарифицируется по часам, стоимость часа умножалась на 720. Цены для расчёта взяты из следующих источников:
— для Yandex Cloud Managed Database: cloud.yandex.ru/docs/mdb/pricing
— для Yandex Cloud Compute Instance: cloud.yandex.ru/docs/compute/pricing
— для Selectel VPC Instance: selectel.ru/services/cloud/vpc
Результаты тестирования в виде графика:
Выводы
Выводы, в общем-то, достаточно очевидны: universal SSD у Селектела для целей размещения СУБД лучше не брать 🙂
Ну а если серьёзно, то мне было интересно сравнить в первую очередь Selectel и Yandex. Как оказалось, оба решения идут практически ноздря-в-ноздрю как по производительности, так и по стоимости. Причём стоимость приятно удивила: цены на тестируемые конфигурации оказались вполне доступными.
Использовать аналогичную по параметрам конфигурацию в облаке AWS ожидаемо дороже (хотя я ожидал большей разницы в цене), но вот по производительности угнаться за AWS EC2 не смог ни один из российских провайдеров. Исключение — не понятный мне RDS, которому не помогает даже добавление provisioned IOPS — работает он всё равно медленно, а стоит при этом очень и очень дорого.
Еще пару слов про Яндекс: вообще, появления такого сервиса я ждал от них давно, очевидно было, что это лишь вопрос времени. Пока еще видно, что он сыроват (надеюсь, это относится только к веб-морде, а не к инфраструктуре в целом), потому как внутри ещё много багов и глюков. Пришлось плотно пообщаться с тех. поддержкой, чтобы понять, это баг или это я что-то не понимаю. Но, я уверен, всё это быстро отладят и на российском рынке IaaS появится еще одна достойная альтернатива.
ссылка на оригинал статьи https://habr.com/post/428151/
Добавить комментарий