O Postgres parece estar perdendo conexões dos clientes. Os clientes obtêm um erro, normalmente que a conexão foi fechada pelo servidor e, ao mesmo tempo, o servidor obtém uma entrada de log. Exemplo:
Nov 14 17:54:15 dev-db0 postgres[29523]: [219-1] 2014-11-14 17:54:15 GMT [29523]: [2-1] user=******,db=******,remote=10.0.13.1(51491) LOG: could not receive data from client: Connection timed out
Tanto quanto eu posso ver, isso acontece principalmente para os clientes Windows, e está acontecendo em vários servidores de banco de dados diferentes, físicos e virtuais. Tomei conhecimento desse problema quando um usuário que tentava acessar postgres em uma VPN estava tendo o problema, mas verificar os logs mostra que isso também acontece com os clientes locais, embora a VPN pareça fazer isso com mais frequência.
Eu tentei todas as configurações keepalive em postgresql.conf ( tcp_keepalives_idle
, tcp_keepalives_interval
e tcp_keepalives_count
), assim como tunelamento da conexão com o banco de dados através de SSH, mas nenhuma parece fazer qualquer diferença.
Enquanto ele diz tempo limite no lado do servidor, no lado do cliente, ele normalmente diz que a conexão foi redefinida pelo par ou similar. A maneira mais confiável de reproduzi-lo é executar consultas grandes / longas; O pgadmin e o tomcat parecem ser mais suscetíveis a ele que o psql.
Tags postgresql