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