Você também aumentou o tamanho máximo do segmento do kernel?
Tente:
sysctl -w kernel.shmmax=1258291200
Eu tenho um servidor PostgreSQL 9.4 que parece limitar as conexões a menos do que eu defini em max_connections.
Eu tenho max_connections definido como 300.
SHOW max_connections;
max_connections
-----------------
300
No entanto, descobri que começo a obter novas conexões com tempo limite, assim que minhas conexões ativas atingem 100, conforme medido por SELECT count(*) from pg_stat_activity;
Enquanto esse número estiver abaixo de 100, novas conexões funcionarão. Uma vez que atinge 100, novas conexões falham: PG::ConnectionBad: could not connect to server: Connection timed out
(biblioteca de Ruby pg)
Parece haver uma exceção para conexões de superusuário (ou seja, me conectando via PgAdmin), já que posso exceder o limite de 100 dessa maneira, embora os aplicativos que não usam superusuários continuem expirando.
Eu não sei exatamente qual é a causa raiz.
Algumas configurações:
max_connections = 300
superuser_reserved_connections = 2
shared_buffers = 1024MB
effective_cache_size = 2048MB
work_mem = 8MB
maintenance_work_mem = 256MB
Eu tentei mexer um pouco nesses valores, sem nenhum efeito útil.
Outros detalhes:
free
mostra 2,1 GB livres, 3,5 GB incluindo buffers / cache. Você também aumentou o tamanho máximo do segmento do kernel?
Tente:
sysctl -w kernel.shmmax=1258291200
É possível que você tenha limitado a conexão máxima de usuários? Privilégios de função
Você pode mudar isso com
ALTER ROLE rolename CONNECTION LIMIT 300;