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

Responder a