On 12/19/18 7:27 PM, Michael Paquier wrote: [snip] > Each backend stores its own copy of the relation cache, so if you have > idle connections which have been used for other work in the past then > the memory of those caches is still around. Idle connections also have > a CPU cost in Postgres when building snapshots for example, and their > entries need to be scanned from a wider array, but usually the relation > cache bloat is a wider problem.
So it's best to kill connections that have been idle for a while?
sure - one hour idle connection is too old.
I'd also assess closing the connection from the client end once its task is done - that would reduce the number of idle connections in the first place.