Производительность кластера Managed Service for Sharded PostgreSQL
Как повысить производительность?
-
Увеличьте ресурсы (CPU, RAM) имеющихся роутеров.
-
Добавьте новые роутеры.
-
Отключите debug-логирование роутеров для снижения нагрузки на вычислительные ресурсы.
-
В конфигурации роутера отключите настройку
show_notice_messages, так как сообщения NOTICE увеличивают нагрузку на Sharded PostgreSQL. -
Избегайте частых переподключений: настройте пул соединений в приложении.
-
Включите чтение с реплик. Для этого передайте в SQL-запросе виртуальный параметр:
SELECT * FROM orders /* target-session-attrs: read-only */; -
Ограничьте время выполнения долгих запросов:
SET session_duration_timeout = '5min';
Как снизить задержки при чтении?
-
Включите чтение с реплик:
SELECT * FROM table /* target-session-attrs: read-only */; -
Увеличьте значение
max_connectionsдля пользователя.
Как ограничить нагрузку от загрузки данных?
- Создайте отдельного пользователя и ограничьте количество подключений для него (настройка
conn_limit). - Используйте выделенный роутер для ETL-операций.
- Настройте
session_duration_timeoutдля автоматического завершения долгих сессий.
Как настроить чтение с реплик?
В конфигурации можно указать несколько серверов для одного шарда. Роутер автоматически распределит read‑only запросы между репликами. Для конкретного запроса можно явно задать параметр target-session-attrs:
read-write(по умолчанию) — запросы только к мастеру.smart-read-write— запросы только к мастеру, но при этом запросы только на чтение перенаправляются к репликам.read-only— запросы только к репликам (если доступны).prefer-standbyилиprefer-replica— запросы к репликам. Если ни одна не доступна, запросы направляются к мастеру.any— запросы к любому доступному узлу (предпочтительно локальному). Для уменьшения задержек рекомендуется использовать это значение вместе с выбором ближайшего хоста.
Какие ресурсы требуются для роутеров и координаторов?
Рекомендуется выбирать конфигурацию вычислительных ресурсов для роутера и координатора в соответствии с ожидаемой нагрузкой.
Рекомендуемые конфигурации при нагрузке в 20 000 запросов на чтение в секунду:
|
Уровень требований |
Конфигурация роутеров |
Конфигурация координаторов |
Общая конфигурация |
|
Минимальный |
|
|
|
|
Оптимальный |
|
|
|
|
С запасом |
|
|
|
Чтобы рассчитать стоимость кластера Managed Service for Sharded PostgreSQL, воспользуйтесь калькулятором.