On 8/25/2016 9:58 AM, Theron Luhn wrote:
> > I do not remember exact formula, but it should be something like
> “work_mem*max_connections + shared_buffers” and it should be around
> 80% of your machine RAM (minus RAM used by other processes and
> kernel). It will save you from OOM.
>
a single query can use multiple work_mem's if its got subqueries, joins,
etc.
> My Postgres is configured with *very* conservative values. work_mem
> (4MB) * max_connections (100) + shared buffers (512MB) = ~1GB, yet
> Postgres managed to fill up a 4GB server. I'm seeing workers
> consuming hundreds of MBs of memory (and not releasing any of it until
> the connection closes), despite work_mem being 4MB.
are you doing queries that return large data sets?
--
john r pierce, recycling bits in santa cruz