Aumentar max_connections
é má ideia. Você precisa aumentar shared_buffers
e kernel.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
max_connections = 100
shared_buffers = 24MB
para
max_connections = 300
shared_buffers = 80MB
O shared_buffers
parâmetro de configuração determina quanta memória é dedicada ao PostgreSQL a ser usada para armazenamento de dados em cache .
- Se você tem um sistema com 1 GB ou mais de RAM, um valor inicial razoável para shared_buffers é 1/4 da memória em seu sistema.
- é improvável que você descubra usando mais de 40% de RAM para funcionar melhor do que uma quantidade menor (como 25%)
- Esteja ciente de que se o seu sistema ou construção PostgreSQL for de 32 bits, pode não ser prático definir shared_buffers acima de 2 ~ 2,5 GB.
- Note que no Windows, valores grandes para shared_buffers não são tão eficazes, e você pode encontrar melhores resultados mantendo-o relativamente baixo e usando mais o cache do sistema operacional. No Windows, o intervalo útil é de 64 MB a 512 MB .
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 quando postgresql
reinicializar (a linha a seguir torna o kernel máximo 96Mb
)
kernel.shmmax=100663296
Referências
Conexões máximas de Postgres e buffers compartilhados
Ajustando seu servidor PostgreSQL