Estou usando o Postgres DB para meu produto. Ao fazer a inserção de lote usando slick 3, estou recebendo uma mensagem de erro:
org.postgresql.util.PSQLException: FATAL: desculpe, já há muitos clientes.
Minha operação de inserção de lote terá mais do que milhares de registros. A conexão máxima para meu postgres é 100.
Como aumentar as conexões máximas?
postgresql
Jato
fonte
fonte
Respostas:
Aumentar
max_connections
é má ideia. Você precisa aumentarshared_buffers
ekernel.shmmax
também.Considerações
max_connections
determina o número máximo de conexões simultâneas com o servidor de banco de dados. O padrão é normalmente 100 conexões.Antes de aumentar sua contagem de conexões, você pode precisar aumentar sua implantação. Mas antes disso, você deve considerar se realmente precisa de um limite de conexão maior.
Cada conexão PostgreSQL consome RAM para gerenciar a conexão ou o cliente que a usa. Quanto mais conexões você tiver, mais RAM estará usando, que poderia ser usada para executar o banco de dados.
Um aplicativo bem escrito normalmente não precisa de um grande número de conexões. Se você tem um aplicativo que precisa de um grande número de conexões, considere usar uma ferramenta como o pg_bouncer, que pode agrupar conexões para você. Como cada conexão consome RAM, você deve procurar minimizar seu uso.
Como aumentar o máximo de conexões
1. Aumente
max_connection
eshared_buffers
no
/var/lib/pgsql/{version_number}/data/postgresql.conf
mudança
para
O
shared_buffers
parâmetro de configuração determina quanta memória é dedicada ao PostgreSQL a ser usada para armazenamento de dados em cache .2. Altere kernel.shmmax
Você precisaria aumentar o tamanho máximo do segmento do kernel para ser ligeiramente maior que o
shared_buffers
.No arquivo,
/etc/sysctl.conf
defina o parâmetro conforme mostrado abaixo. Ele terá efeito quandopostgresql
reinicializar (a linha a seguir torna o kernel máximo96Mb
)Referências
Conexões máximas de Postgres e buffers compartilhados
Ajustando seu servidor PostgreSQL
fonte
cat /proc/sys/kernel/shmmax
) antes de alterá-la. Em sistemas modernos, ele já está ridiculamente alto e não deve ser alterado. O meu é definido como18446744073692774399
padrão no Ubuntu 18.04.Adicionando à ótima resposta de Winnie,
Se alguém não conseguir encontrar a localização do arquivo postgresql.conf em sua configuração, você pode sempre perguntar ao próprio postgres.
Para mim, mudar o max_connections sozinho fez o truque.
fonte
/etc/postgresql/11/main/postgresql.conf
altere a variável max_connections no arquivo postgresql.conf localizado em / var / lib / pgsql / data ou / usr / local / pgsql / data /
fonte