[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for Sharded PostgreSQL](../index.md) > Вопросы и ответы > Производительность

# Производительность кластера Managed Service for Sharded PostgreSQL

* [Как повысить производительность?](#how-to-improve-performance)

* [Как снизить задержки при чтении?](#how-to-decrease-read-latency)

* [Как ограничить нагрузку от загрузки данных?](#how-to-improve-data-upload-performance)

* [Как настроить чтение с реплик?](#how-to-read-from-replicas)

* [Какие ресурсы требуются для роутеров и координаторов?](#router-and-coordinator-resources)

#### Как повысить производительность? {#how-to-improve-performance}

* Увеличьте ресурсы (CPU, RAM) имеющихся роутеров.

* Добавьте новые роутеры.

* Отключите debug-логирование роутеров для снижения нагрузки на вычислительные ресурсы.

* В конфигурации роутера отключите настройку `show_notice_messages`, так как сообщения NOTICE увеличивают нагрузку на Sharded PostgreSQL.

* Избегайте частых переподключений: настройте пул соединений в приложении.

* Включите чтение с реплик. Для этого передайте в SQL-запросе виртуальный параметр:

  ```sql
  SELECT * FROM orders /* target-session-attrs: read-only */;
  ```
* Ограничьте время выполнения долгих запросов:

  ```sql
  SET session_duration_timeout = '5min';
  ```

#### Как снизить задержки при чтении? {#how-to-decrease-read-latency}

* Включите чтение с реплик:

  ```sql
  SELECT * FROM table /* target-session-attrs: read-only */;
  ```

* Увеличьте значение `max_connections` для пользователя.

#### Как ограничить нагрузку от загрузки данных? {#how-to-improve-data-upload-performance}

* Создайте отдельного пользователя и ограничьте количество подключений для него (настройка `conn_limit`).
* Используйте выделенный роутер для ETL-операций.
* Настройте `session_duration_timeout` для автоматического завершения долгих сессий.

#### Как настроить чтение с реплик? {#how-to-read-from-replicas}

В конфигурации можно указать несколько серверов для одного шарда. Роутер автоматически распределит read‑only запросы между репликами. Для конкретного запроса можно явно задать параметр `target-session-attrs`:

* `read-write` (по умолчанию) — запросы только к мастеру.
* `smart-read-write` — запросы только к мастеру, но при этом запросы только на чтение перенаправляются к репликам.
* `read-only` — запросы только к репликам (если доступны).
* `prefer-standby` или `prefer-replica` — запросы к репликам. Если ни одна не доступна, запросы направляются к мастеру.
* `any` — запросы к любому доступному узлу (предпочтительно локальному). Для уменьшения задержек рекомендуется использовать это значение вместе с выбором ближайшего хоста.

#### Какие ресурсы требуются для роутеров и координаторов? {#router-and-coordinator-resources}

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

Рекомендуемые конфигурации при нагрузке в 20 000 запросов на чтение в секунду:

#|
|| Уровень требований | Конфигурация роутеров | Конфигурация координаторов | Общая конфигурация ||

|| Минимальный 
| 
* 3 роутера. Класс хостов каждого роутера должен включать 4 vCPU с гарантированной долей vCPU 100% и 16 ГБ RAM.
* Диск `local-ssd` 10 ГБ
| 
* 3 координатора. Класс хостов каждого координатора должен включать 2 vCPU с гарантированной долей vCPU 100% и 4 ГБ RAM.
* Диск `local-ssd` 10 ГБ
|
* 18 vCPU с гарантированной долей vCPU 100%.
* 60 ГБ RAM.
* Диски `local-ssd` 60 ГБ
||
|| Оптимальный
|
* 3 роутера. Класс хостов каждого роутера должен включать 4 vCPU с гарантированной долей vCPU 100% и 16 ГБ RAM.
* Диск `local-ssd` 10 ГБ
|
* 3 координатора. Класс хостов каждого координатора должен включать 2 vCPU с гарантированной долей vCPU 100%, 8 ГБ RAM.
* Диск `local-ssd` 10 ГБ
|
* 18 vCPU с гарантированной долей vCPU 100%.
* 72 ГБ RAM.
* Диски `local-ssd` 60 ГБ
||
|| С запасом
|
* 5 роутеров. Класс хостов каждого роутера должен включать 4 vCPU с гарантированной долей vCPU 100% и 16 ГБ RAM.
* Диск `local-ssd` 10 ГБ
|
* 3 координатора. Класс хостов каждого координатора должен включать 2 vCPU с гарантированной долей vCPU 100% и 8 ГБ RAM.
* Диск `local-ssd` 10 ГБ
|
* 26 vCPU с гарантированной долей vCPU 100%.
* 104 ГБ RAM.
* Диски `local-ssd` 80 ГБ
||
|#

Чтобы рассчитать стоимость кластера Managed Service for Sharded PostgreSQL, [воспользуйтесь калькулятором](https://yandex.cloud/ru/services/managed-spqr#calculator).