PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como aumentar as conexões máximas no postgres?


Apenas aumentando max_connections é má ideia. Você precisa aumentar os 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, talvez seja necessário dimensionar 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 utiliza. Quanto mais conexões você tiver, mais memória RAM você usará e poderá 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ê tiver um aplicativo que precise de um grande número de conexões, considere usar uma ferramenta como 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 e shared_buffers

em /var/lib/pgsql/{version_number}/data/postgresql.conf

mudança
max_connections = 100
shared_buffers = 24MB

para
max_connections = 300
shared_buffers = 80MB

Os shared_buffers parâmetro de configuração determina quanta memória é dedicado para o PostgreSQL usar para armazenar dados em cache .
  • Se você tiver 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 que usar mais de 40% de RAM para funcionar melhor do que uma quantidade menor (como 25%)
  • Esteja ciente de que, se o seu sistema ou compilação do PostgreSQL for de 32 bits, pode não ser prático definir shared_buffers acima de 2 ~ 2,5 GB.
  • Observe que, no Windows, valores grandes para shared_buffers não são tão eficazes, e você pode encontrar melhores resultados mantendo-os relativamente baixos e usando mais o cache do SO. No Windows, o intervalo útil é de 64 MB a 512 MB .

2. Alterar kernel.shmmax

Você precisaria aumentar o tamanho máximo do segmento do kernel para ligeiramente maior do que os shared_buffers .

No arquivo /etc/sysctl.conf defina o parâmetro conforme mostrado abaixo. Ele entrará em vigor quando postgresql reboots (A linha a seguir torna o kernel max para 96Mb )
kernel.shmmax=100663296

Referências

Conexões Postgres Max e buffers compartilhados

Ajustando seu servidor PostgreSQL