Re: Auto-tuning work_mem and maintenance_work_mem

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Josh Berkus <josh(at)agliodbs(dot)com>
Subject: Re: Auto-tuning work_mem and maintenance_work_mem
Date: 2013-10-10 18:14:27
Message-ID: CAMkU=1xsdZNoQZ7-WvGVq3hnF4z-gon3rYjw9VimHxqFNvcfoA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Oct 9, 2013 at 8:06 AM, Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:

>
> On 10/09/2013 10:45 AM, Bruce Momjian wrote:
>
>> On Wed, Oct 9, 2013 at 04:40:38PM +0200, Pavel Stehule wrote:
>>
>>> Effectively, if every session uses one full work_mem, you end up
>>> with
>>> total work_mem usage equal to shared_buffers.
>>>
>>> We can try a different algorithm to scale up work_mem, but it seems
>>> wise
>>> to auto-scale it up to some extent based on shared_buffers.
>>>
>>>
>>> In my experience a optimal value of work_mem depends on data and load,
>>> so I
>>> prefer a work_mem as independent parameter.
>>>
>> But it still is an independent parameter. I am just changing the default.
>>
>>
> The danger with work_mem especially is that setting it too high can lead
> to crashing postgres or your system at some stage down the track, so
> autotuning it is kinda dangerous, much more dangerous than autotuning
> shared buffers.
>

Is this common to see? I ask because in my experience, having 100
connections all decide to do large sorts simultaneously is going to make
the server fall over, regardless of whether it tries to do them in memory
(OOM) or whether it does them with tape sorts (stuck spin locks, usually).

>
> The assumption that each connection won't use lots of work_mem is also
> false, I think, especially in these days of connection poolers.
>

I don't follow that. Why would using a connection pooler change the
multiples of work_mem that a connection would use?

Cheers,

Jeff

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Claudio Freire 2013-10-10 18:18:13 Re: dynamic shared memory: wherein I am punished for good intentions
Previous Message David Johnston 2013-10-10 18:07:32 Re: dynamic shared memory: wherein I am punished for good intentions