Я использую Postgres DB для своего продукта. При выполнении пакетной вставки с помощью Slick 3 я получаю сообщение об ошибке:
org.postgresql.util.PSQLException: FATAL: извините, уже слишком много клиентов.
Моя операция пакетной вставки будет содержать более тысячи записей. Максимальное количество подключений для моих postgres - 100.
Как увеличить максимальное количество подключений?
postgresql
Jet
источник
источник
Ответы:
Просто увеличение
max_connections
- плохая идея. Вам нужно увеличитьshared_buffers
иkernel.shmmax
тоже.Соображения
max_connections
определяет максимальное количество одновременных подключений к серверу базы данных. По умолчанию обычно 100 подключений.Перед увеличением количества подключений вам может потребоваться масштабирование развертывания. Но перед этим следует подумать, действительно ли вам нужно повышенное ограничение на подключение.
Каждое соединение PostgreSQL потребляет оперативную память для управления соединением или клиентом, использующим его. Чем больше у вас подключений, тем больше оперативной памяти вы будете использовать для работы с базой данных.
Хорошо написанное приложение обычно не требует большого количества подключений. Если у вас есть приложение, которому требуется большое количество подключений, подумайте об использовании такого инструмента, как pg_bouncer, который может объединять подключения для вас. Поскольку каждое соединение потребляет оперативную память, вы должны стремиться минимизировать их использование.
Как увеличить максимальное количество подключений
1. Увеличение
max_connection
иshared_buffers
в
/var/lib/pgsql/{version_number}/data/postgresql.conf
изменение
к
shared_buffers
Параметр конфигурации определяет , сколько памяти будет посвящен в PostgreSQL использовать для кэширования данных .2. Измените kernel.shmmax
Вам нужно будет увеличить максимальный размер сегмента ядра, чтобы он был немного больше, чем размер
shared_buffers
.В файле
/etc/sysctl.conf
установите параметр, как показано ниже. Он вступит в силу приpostgresql
перезагрузке (следующая строка устанавливает максимальное значение ядра96Mb
)Ссылки
Максимальное количество подключений и общие буферы Postgres
Настройка сервера PostgreSQL
источник
cat /proc/sys/kernel/shmmax
). В современных системах он уже установлен смехотворно высоким, и его не следует менять. Mine18446744073692774399
по умолчанию установлен в Ubuntu 18.04.Добавляя к отличному ответу Винни,
Если кто-то не может найти расположение файла postgresql.conf в вашей настройке, вы всегда можете спросить сам postgres.
Для меня изменение только max_connections сделало трюк.
источник
/etc/postgresql/11/main/postgresql.conf
измените переменную max_connections в файле postgresql.conf, расположенном в / var / lib / pgsql / data или / usr / local / pgsql / data /
источник