Расчёт максимального количества подключений к PostgreSQL
Перед установкой Закрома.Хранение необходимо заранее выставить корректное значение количества подключений в PostgreSQL. Для этого необходимо воспользоваться следующей схемой расчёта максимального количества подключений.
Формула расчёта
1<количество нод> * ( 2 <zakroma_storage_composer.postgresql_max_open_conns> * 2 + 3 <zakroma_storage_gateway.postgresql_max_open_conns> + 4 <zakroma_storage_seclog.postgresql_max_open_conns> + 5 <zakroma_storage_workers.postgresql_max_open_conns> * <кол-во шардов> + 6 <zakroma_storage_notification.postgresql_max_open_conns | если включен модуль> 7) + <200 | если используется keycloak>
Компоненты формулы
Количество нод
Количество серверов (нод), на которых установлен Zakroma Storage.
zakroma_storage_composer.postgresql_max_open_conns (или zakroma_storage_core.postgresql_max_open_conns)
Максимальное количество открытых подключений к базе данных для сервиса composer (core). Умножается на 2, так как сервис использует два пула подключений.
zakroma_storage_gateway.postgresql_max_open_conns
Максимальное количество открытых подключений к базе данных для сервиса gateway.
zakroma_storage_seclog.postgresql_max_open_conns
Максимальное количество открытых подключений к базе данных для сервиса seclog (если включен).
zakroma_storage_workers.postgresql_max_open_conns * количество шардов
Максимальное количество открытых подключений к базе данных для одного worker, умноженное на количество шардов (worker’ов).
zakroma_storage_notification.postgresql_max_open_conns
Максимальное количество открытых подключений к базе данных для сервиса notification (если модуль включен).
Дополнительные подключения для Keycloak
Если используется Keycloak для аутентификации, добавляется 200 подключений к общему количеству.
Пример расчёта
Пример расчёта для типичной конфигурации:
- Количество нод: 3
- zakroma_storage_core.postgresql_max_open_conns: 10
- zakroma_storage_gateway.postgresql_max_open_conns: 10
- zakroma_storage_seclog.postgresql_max_open_conns: 10 (включен)
- zakroma_storage_workers.postgresql_max_open_conns: 10
- Количество шардов (workers): 2
- zakroma_storage_notification.postgresql_max_open_conns: 10 (включен)
- Используется Keycloak: да
Расчёт:
13 * (10 * 2 + 10 + 10 + 10 * 2 + 10) + 200 2= 3 * (20 + 10 + 10 + 20 + 10) + 200 3= 3 * 70 + 200 4= 210 + 200 5= 410 подключений
Настройка PostgreSQL
После расчёта максимального количества подключений необходимо установить параметр max_connections в конфигурации PostgreSQL равным или превышающим рассчитанное значение.
Рекомендуется добавить запас в 20-30% от рассчитанного значения для обеспечения стабильной работы системы.