Re: [pgbr-geral] Muitas conexões no banco

2012-08-14 Por tôpico Flavio Henrique Araque Gurgel

Em 14-08-2012 17:13, Thiago Lima escreveu:
 Boa tarde a todos,

 Estou com um problema aqui em meu BD (PostgreSQL 8.3.5 on
 amd64-portbld-freebsd7.0)

Atualize para 8.3.19.
Obrigatório. Tem muito bug já corrigido que você está desnecessariamente 
sujeito.

 Existem algumas aplicações de geoprocessamento que fazem uso do banco,
 porém o que me chamou atenção, e o que levou ao problema
 foram as diversas conexões abertas. Tenho o max_connections = 800.

Muito alto.
Qualquer PostgreSQL com esse monte de conexões vai abrir o bico, ficar 
lento.
Considere utilizar o aglomerador de conexões eficiente, como o pgbouncer.

 Recebi alguns chamados de algumas aplicações com erro,
 e para minha surpresa ao tentar conectar via pgadmin não consegui,
 dizendo que o limite de conexões havia excedido. Como media emergencial
 reiniciei o banco, so que em uns 40 minutos já havia excedido novamente.
 Fiquei preocupado até achando que era algum ataque. Acessei o server
 status e constatei que existiam várias conexões em IDLE de um mesmo
 usuário
 para um mesmo banco. Para não impactar em outras aplicações os
 servidores que estavam conectando exponencialmente foram desligados.

 Neste momento no meu server status tenho 39 conexões, todas marcadas
 como IDLE, tenho por volta de 6 conexões partindo de um mesmo
 servidor, utilizando o mesmo usuário acessando o mesmo banco.

Verifique porque essas aplicações estão mantendo conexões abertas e sem uso.
Todavia, se for aplicação Java, por exemplo, pode estar usando um pool 
do servidor de aplicações e essas conexões idle são normais.

 Em pesquisa verifiquei os seguintes parametros do postgresql.conf:
 *tcp_keepalives_idle, tcp_keepalives_interval e tcp_keepalives_count*
 Porém não entendi muito bem a aplicabilidade, até cheguei a testar o
 tcp_keepalive_idle porém não observei nenhuma mudança.

Nem haveria mesmo.
Não tem nada a ver.
keepalive é uma forma de manter conexões vivas no nível do protocolo TCP/IP.

Conexões IDLE são conexões abertas pela aplicação e que estão 
simplesmente abertas e sem uso. O PostgreSQL *não* encerra essas 
conexões. E não há configuração para tal.

 Busquei nas mensagens anteriores do fórum porém não achei a solução para
 aplicar.

1) Arrume sua aplicação ou entenda como ela funciona;
2) Utilize um agregador de conexões;
3) URGENTE: atualize seu PostgreSQL.

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Muitas conexões no banco

2012-08-14 Por tôpico Tiago Valério
Caso não exista um pool, implemente você mesmo, o pgbouncer pode lhe ser
útil.

http://pgfoundry.org/projects/pgbouncer/

Em 14 de agosto de 2012 17:55, Flavio Henrique Araque Gurgel 
fla...@4linux.com.br escreveu:


 Em 14-08-2012 17:13, Thiago Lima escreveu:
  Boa tarde a todos,
 
  Estou com um problema aqui em meu BD (PostgreSQL 8.3.5 on
  amd64-portbld-freebsd7.0)

 Atualize para 8.3.19.
 Obrigatório. Tem muito bug já corrigido que você está desnecessariamente
 sujeito.

  Existem algumas aplicações de geoprocessamento que fazem uso do banco,
  porém o que me chamou atenção, e o que levou ao problema
  foram as diversas conexões abertas. Tenho o max_connections = 800.

 Muito alto.
 Qualquer PostgreSQL com esse monte de conexões vai abrir o bico, ficar
 lento.
 Considere utilizar o aglomerador de conexões eficiente, como o pgbouncer.

  Recebi alguns chamados de algumas aplicações com erro,
  e para minha surpresa ao tentar conectar via pgadmin não consegui,
  dizendo que o limite de conexões havia excedido. Como media emergencial
  reiniciei o banco, so que em uns 40 minutos já havia excedido novamente.
  Fiquei preocupado até achando que era algum ataque. Acessei o server
  status e constatei que existiam várias conexões em IDLE de um mesmo
  usuário
  para um mesmo banco. Para não impactar em outras aplicações os
  servidores que estavam conectando exponencialmente foram desligados.
 
  Neste momento no meu server status tenho 39 conexões, todas marcadas
  como IDLE, tenho por volta de 6 conexões partindo de um mesmo
  servidor, utilizando o mesmo usuário acessando o mesmo banco.

 Verifique porque essas aplicações estão mantendo conexões abertas e sem
 uso.
 Todavia, se for aplicação Java, por exemplo, pode estar usando um pool
 do servidor de aplicações e essas conexões idle são normais.

  Em pesquisa verifiquei os seguintes parametros do postgresql.conf:
  *tcp_keepalives_idle, tcp_keepalives_interval e tcp_keepalives_count*
  Porém não entendi muito bem a aplicabilidade, até cheguei a testar o
  tcp_keepalive_idle porém não observei nenhuma mudança.

 Nem haveria mesmo.
 Não tem nada a ver.
 keepalive é uma forma de manter conexões vivas no nível do protocolo
 TCP/IP.

 Conexões IDLE são conexões abertas pela aplicação e que estão
 simplesmente abertas e sem uso. O PostgreSQL *não* encerra essas
 conexões. E não há configuração para tal.

  Busquei nas mensagens anteriores do fórum porém não achei a solução para
  aplicar.

 1) Arrume sua aplicação ou entenda como ela funciona;
 2) Utilize um agregador de conexões;
 3) URGENTE: atualize seu PostgreSQL.

 []s

 Flavio Henrique A. Gurgel
 Consultor e Instrutor 4Linux
 Tel: +55-11-2125-4747
 www.4linux.com.br
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral