Problemas com conexões do Postgre

4 respostas
M

Ola,

Estou precisando de ajuda com o Postgre.

Trabalho atualmente no desenvolvimento de uma intranet, utilizamos Postgre 8.0 e Windows 2000. Há muito usuários acessando as páginas do sistema e de tempos em tempos o limite máximo de 100 conexões com o banco é excedido.

Tentamos aumentar o limite de conexões para 200, mas o sistema apresenta um erro de alocação de memória, imagino q devido a termos excedido a quantidade máxima de memória compartilhada destinada ao Postgre (essa quantidade é fixa, setada quando o postgre é iniciado). Nao sei se existe alguma forma de aumentar essa quantidade máxima.

Após alguns testes, percebemos q quando uma conexão é criada e fechada no código, demora bastante tempo (mais de 30 segundos) para a conexão no postgre seja realmente fechada. Nesses 30 segundos, já deu tempo do usuário navegar e clicar em links que abrem novas conexões e por aí vai…

Gostaria de saber se alguém já teve um problema semelhante ou tem alguma idéia de se isso é uma característica irremediável do Postgre ou se há algo que possa ser feito.

Obrigada!

4 Respostas

R

Oi…

Eu estou tendo este problema, porém meu ambiente é linux.

Não basta somente aumentar o número de usuário (que por sinal está altissimo) mas sim outros parametros (shared_buffers).

Att,
Rafael Luz.

M

Oi Rafael,

Obrigada por sua resposta. 

 Por que vc acha q o número de usuários (no caso conexões simultaneas) está altíssimo? Há cerca de 1000 usuários em potencial para essa intranet e, como as conexões aparentemente não expiram rápido, se 10% desses 1000 estiver navegando, já é excedido o limite.

 Será que você poderia me falar mais sobre esse parâmetro shared_buffers? Devo setar para quanto? Há outros parâmetros também que me ajudariam com esse problema? Pesquisei a respeito no Google, mas tudo parece bastante confuso, não conheço muito do postgre.
R

Oi, bom dia…

Sei pouco no ambiente windows…

Por acaso você roda algum script de manutenção no banco ??

Pode ser algum problema na programação da aplicação que também não está liberando a conexão.

Att,
Rafael

T

É usado “connection pooling” na conexão com o banco, ou a conexão está amarrada à sessão? (Para cada sessão é aberta uma conexão)

Com 1000 usuários e 100 simultâneos, não era para usar mais de 20 conexões se fosse usar “connection pooling”.

Criado 29 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 4
Participantes 3