Thanks guys.

I think I've got a clearer idea of what's going on here.  Basically I
need to take more into account than just the shared buffers setting,
and knowing that, I can leave extra head-room for other options which
will likely take up shared memory.

Cheers

Thom

On Wed, Nov 12, 2008 at 1:18 AM, Greg Smith <[EMAIL PROTECTED]> wrote:
> On Tue, 11 Nov 2008, Thom Brown wrote:
>
>> I've noticed that if I set my SHMMAX to 256 * 1024 * 1024 (268435456)
>> and my shared_buffers value in postgresql.conf to 256MB the server
>> fails to start.  I managed to find a tipping point: 249MB seems to be
>> too much and 248MB seems to be okay.
>
> Buffers are allocated in 8K blocks.  When you use '256MB', that turns into
> 32768 of those.  Each buffer has a header and some other overhead such that
> they actually take up 8400 bytes[1], which totals 1.025X the amount that
> actually goes into the buffer pool.  There's another MB or two that goes
> into other overhead, that part depends on things like max_connections.  That
> overhead computation isn't even exact in the source code![2]
>
> At shared_buffers=248MB, just the buffer pool overhead pushes the required
> amount to allocate up to 254.3MB; that just slips by with the rest of your
> settings.  At 249MB, the buffer pool needs 255.3MB.  With the other overhead
> added in, that just exceeds the 256MB SHMMAX and fails.
>
> 1:
> http://www.postgresql.org/docs/current/static/kernel-resources.html#SHARED-MEMORY-PARAMETERS
> 2:
> http://doxygen.postgresql.org/ipci_8c.html#5371eff96f6dea948021ddfc9f0f5a38
>
> --
> * Greg Smith [EMAIL PROTECTED] http://www.gregsmith.com Baltimore, MD
>

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to