From: | Scott Marlowe <smarlowe(at)g2switchworks(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Florian G(dot) Pflug" <fgp(at)phlo(dot)org>, Richard Huxton <dev(at)archonet(dot)com>, Gavin Hamill <gdh(at)laterooms(dot)com>, pgsql general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Clearing out old idle connections |
Date: | 2006-05-24 19:05:24 |
Message-ID: | 1148497524.25526.29.camel@state.g2switchworks.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, 2006-05-24 at 14:00, Tom Lane wrote:
> "Florian G. Pflug" <fgp(at)phlo(dot)org> writes:
> > You can (at least on linux, I assume it's the same for BSD) set the
> > "keepalive" flag of a connection. This results in empty packets being
> > sent every 30 seconds or so, and the connection is reported to be dead
> > if no ACK is received within a timeout.
>
> > I don't know if postgres has a flag to disable/enable this. If not, I'd
> > guess it would be quite trivial to add that.
>
> Postgres has always (well, for as long as I can remember) enabled
> keepalive checks on client TCP connections. However, the default
> timeouts on TCP keepalive are not "30 seconds or so", but well over
> an hour according to the RFC specifications.
>
> Some platforms allow you to fool with the timeouts, some don't.
> If you have one that does, recent PG versions will let you configure
> that.
>
> I'm not sure whether this will actually solve the OP's problem, because
> if the clients are actually still there but not doing anything, the
> connection is not going to time out. This is mainly something that
> helps with flaky networks, broken Windoze boxes that forget they have
> connections, that sort of thing...
Note that we had a problem like this because the router / firewalls
between our app servers and postgresql servers had a timeout of 30
minutes, and would drop the idle connections after that time. Setting
our tcp_keepalive to 5 minutes or so made the problem of the postgresql
clients seeing broken connections go away.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-05-24 19:14:02 | Re: meaning of PQresultStatus types |
Previous Message | Tom Lane | 2006-05-24 19:00:53 | Re: Clearing out old idle connections |