PostgreSQL
August 28, 2022

Увеличим количество доступных подключений для пользователя БД PostgreSQL

Посмотрим сколько подключений выдано на данный момент:

export POSTGRES=$(yc postgresql cluster get cam-postgres --format=json | jq -r ".id")
yc postgresql user list --cluster-id $POSTGRES
+--------+-------------+------------+
|  NAME  | PERMISSIONS | CONN LIMIT |
+--------+-------------+------------+
| cameda | db1         |         50 |
+--------+-------------+------------+

Увеличим значение соединений 50-->70.

yc postgresql user update --cluster-id $POSTGRES --login cameda --conn-limit 70 --async

Проверим сколько подключений стало:

yc postgresql user list --cluster-id $POSTGRES
+--------+-------------+------------+
|  NAME  | PERMISSIONS | CONN LIMIT |
+--------+-------------+------------+
| cameda | db1         |         70 |
+--------+-------------+------------+

Важное замечание!

Здесь отмечу, что количество соединений к базе не бесконечно и зависит от количества ядер cpu, а также процента использования ядра. Чем больше ресурсов у процессора, тем больше можно установить соединений. А мощность процессора в свою очередь зависит от флейвора.
Флейвор - это по-русски класс хостов.

Формула для подсчёта количества соединений для кластера такая 200*кол-во ядер на каждом хосте - 15. 15 соединений резервируется для служебных нужд.
Количество соединений для кластера - это параметр max_connections.

Итак, в этой короткой статье научились изменять количество соединений к базе для конкретного пользователя.

Полезные ссылки.

Создали кластер здесь: https://teletype.in/@cameda/Lheee0sIIqV
Классы хостов:
https://cloud.yandex.ru/docs/managed-postgresql/concepts/instance-types