Sebastian Gabbert <pg@huehnerhose.de> writes:
> Postgres is running on a dedicated FreeBSD 11.2 server with 32GB of RAM, there is a second server in hot standby /
walreplication. My “worker” processes, mainly php processes, connect through pgbouncer (session mode).
> What I observed is that there are, at any time, around 10-15 postgres backend processes on my main db server
consumingaround 4GB of memory (RES in glances) each. These processes keep this footprint until pgbouncer closes the
connection.
That is, most likely, almost entirely shared space (shared buffers and so
on). Sorting out how much is shared and how much is actually per-process
memory can be tricky, because most Unix process monitoring tools aren't
very good about showing the difference. I don't use FreeBSD enough to be
sure how to tell the difference with its tools --- but you can't get
anywhere with diagnosing PG's true memory consumption until you've got a
handle on that.
It would be interesting to know what you've got shared_buffers set to
on this server, though.
regards, tom lane