Хабрахабр

Экспресс-обзор производительности PostgreSQL 10.5 в новейших облачных сервисах Яндекс.Облака

Буквально на днях Яндекс открыл доступ для beta-пользователей к своему новому сервису — Яндекс.Облако. Так вышло, что это событие совпало с необходимостью выбора облачной платформы для одного из наших внутренних проектов и я решил сразу протестировать производительность решений Яндекса.

Выбор на СУБД пал потому что было интересно протестировать и сравнить производительность не только виртуальных машин, то и managed database сервисов. Для теста я взял PostgreSQL и старый добрый pgbench.

Тестирование проводилось сугубо в личных целях и на объективность не претендует, поэтому прошу воспринимать статью «as is». Disclaimer: автор не является ни профессиональным админом, ни DBA, ни специалистом по настройке облачных решений. Возможно, это сэкономит кому-то немного времени. Внутри не будет какого-то глубокого разбора, но будет экспресс-сравнение с Selectel VPC (на разных дисках) и различными конфигурациями AWS EC2/RDS в части производительности и стоимости решений.

Cloud vs Selectel VPC vs AWS под катом.
Подробности Yandex.

Структура сервисов Яндекс.Облака

Структура ресурсов Яндекс.Облака обычная для подобного рода сервисов:

Квоты ресурсов (глобальные)
Каталог (проект)

— Compute Cloud (виртуальные машины и диски)
— Managed Databases (кластеры баз данных, можно запускать базы Clickhouse, MongoDB и PostgreSQL)
— Object Storage (облачное хранилище)
— Virtual Private Cloud (облачные сети)
— API

Подробно описывать интерфейс не вижу смысла, тем более, что документация находится в свободном доступе и из неё многое и так понятно.

Сравниваемые конфигурации

Для всех виртуальных инстансов в тесте были выделены следующие ресурсы:

тестируемые инстансы).
OS: CentOS 7 minimal vCPU: 8 cores
RAM: 32 Gb
Disk: SSD (конкретный класс — см.

Для managed database-сервисов запрашивалась максимально близкая конфигурация (у Яндекса и AWS как раз есть конфигурации с 8CPU/32RAM).

5. Тестируемая версия Postgres — 10. На виртуалки он ставился из пакета postgresql10-server, а на managed-кластерах выбиралась эта версия из списка.

Методика тестирования

  1. На чистую ОС устанавливались пакеты postgresql10-server и postgresql10
  2. Инициализировалась БД для бенчмарка с параметрами: pgbench -i -s 100
  3. Три раза прогонялся бенчмарк с параметрами: pgbench -c 10 -T 60
  4. Утилита pgbench запускалась на той же виртуальной машине, где установлена СУБД, а для managed-кластеров — на виртуальной машине в том же облаке.
  5. В таблицу результатов заносился лучший результат из трёх.

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

Все результаты экспресс-теста одной таблицей (графики ниже):

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
— для Yandex Cloud Compute Instance
— для Selectel VPC Instance

Результаты тестирования в виде графика:

image

Выводы

Выводы, в общем-то, достаточно очевидны: universal SSD у Селектела для целей размещения СУБД лучше не брать 🙂

Как оказалось, оба решения идут практически ноздря-в-ноздрю как по производительности, так и по стоимости. Ну а если серьёзно, то мне было интересно сравнить в первую очередь Selectel и Yandex. Причём стоимость приятно удивила: цены на тестируемые конфигурации оказались вполне доступными.

Исключение — не понятный мне RDS, которому не помогает даже добавление provisioned IOPS — работает он всё равно медленно, а стоит при этом очень и очень дорого. Использовать аналогичную по параметрам конфигурацию в облаке AWS ожидаемо дороже (хотя я ожидал большей разницы в цене), но вот по производительности угнаться за AWS EC2 не смог ни один из российских провайдеров.

Пока еще видно, что он сыроват (надеюсь, это относится только к веб-морде, а не к инфраструктуре в целом), потому как внутри ещё много багов и глюков. Еще пару слов про Яндекс: вообще, появления такого сервиса я ждал от них давно, очевидно было, что это лишь вопрос времени. поддержкой, чтобы понять, это баг или это я что-то не понимаю. Пришлось плотно пообщаться с тех. Но, я уверен, всё это быстро отладят и на российском рынке IaaS появится еще одна достойная альтернатива.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть