- PVSM.RU - https://www.pvsm.ru -
Буквально на днях Яндекс открыл доступ для beta-пользователей к своему новому сервису — Яндекс.Облако [1]. Так вышло, что это событие совпало с необходимостью выбора облачной платформы для одного из наших внутренних проектов и я решил сразу протестировать производительность решений Яндекса.
Для теста я взял 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
Подробно описывать интерфейс не вижу смысла, тем более, что документация [2] находится в свободном доступе и из неё многое и так понятно.
Для всех виртуальных инстансов в тесте были выделены следующие ресурсы:
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 [3] (fast SSD) | 1524 | 186 |
Yandex Cloud Compute Instance [4] | 1309 | 155 |
Yandex Cloud Managed Database [5] | 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 [6]
— для Yandex Cloud Compute Instance [7]
— для Selectel VPC Instance [3]
Результаты тестирования в виде графика:
Выводы, в общем-то, достаточно очевидны: universal SSD у Селектела для целей размещения СУБД лучше не брать :)
Ну а если серьёзно, то мне было интересно сравнить в первую очередь Selectel и Yandex. Как оказалось, оба решения идут практически ноздря-в-ноздрю как по производительности, так и по стоимости. Причём стоимость приятно удивила: цены на тестируемые конфигурации оказались вполне доступными.
Использовать аналогичную по параметрам конфигурацию в облаке AWS ожидаемо дороже (хотя я ожидал большей разницы в цене), но вот по производительности угнаться за AWS EC2 не смог ни один из российских провайдеров. Исключение — не понятный мне RDS, которому не помогает даже добавление provisioned IOPS — работает он всё равно медленно, а стоит при этом очень и очень дорого.
Еще пару слов про Яндекс: вообще, появления такого сервиса я ждал от них давно, очевидно было, что это лишь вопрос времени. Пока еще видно, что он сыроват (надеюсь, это относится только к веб-морде, а не к инфраструктуре в целом), потому как внутри ещё много багов и глюков. Пришлось плотно пообщаться с тех. поддержкой, чтобы понять, это баг или это я что-то не понимаю. Но, я уверен, всё это быстро отладят и на российском рынке IaaS появится еще одна достойная альтернатива.
Автор: Denis I. Lukyanov
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/297473
Ссылки в тексте:
[1] Яндекс.Облако: https://cloud.yandex.ru/
[2] документация: https://cloud.yandex.ru/docs
[3] Selectel VPC: https://selectel.ru/services/cloud/vpc/
[4] Yandex Cloud Compute Instance: https://cloud.yandex.ru/docs/compute/
[5] Yandex Cloud Managed Database: https://cloud.yandex.ru/docs/mdb/
[6] для Yandex Cloud Managed Database: https://cloud.yandex.ru/docs/mdb/pricing
[7] для Yandex Cloud Compute Instance: https://cloud.yandex.ru/docs/compute/pricing
[8] Источник: https://habr.com/post/428151/?utm_source=habrahabr&utm_medium=rss&utm_campaign=428151
Нажмите здесь для печати.