Thread: Problems tuning shared_buffers value

Problems tuning shared_buffers value

From
Bill Moran
Date:
I'm new to this list.

This morning I was experimenting with some tunings for PostgreSQL.
(I currently have 7.3.1 installed ... it's behind a firewall so I've
been using that as an excuse not to worry about 7.3.2 yet)  I was
curious about some things, so I set shared_buffers to 16 (which the
config file claims is the lowest allowable value)  The result was
that Postgre refused to start.  I upped it to 32 and the result
was the same.
I looked in both /var/log/messages and in /usr/local/pgsql/logfile
and found nothing about _why_ it wouldn't start, so I became bored
and commented out shared_buffers (returning it to its default value,
I assume) and the postmaster started just fine.
I know it's a little weird to be setting shared_buffers that low,
but this is an old (almost anchient) machine used for testing and
I was wondering how memory-efficient I could make Postgre, even at
the expense of speed.
I guess the real question is: what is the true minimal value for
shared_buffers.  Also, shouldn't there be somewhere I can get a
more descriptive error message than "postmaster did not start"
(in case I had changed multiple values and wasn't sure which one
was wrong)

TIA for answers.

--
Bill Moran
Potential Technologies
http://www.potentialtech.com


Re: Problems tuning shared_buffers value

From
Tom Lane
Date:
Bill Moran <wmoran@potentialtech.com> writes:
> curious about some things, so I set shared_buffers to 16 (which the
> config file claims is the lowest allowable value)  The result was
> that Postgre refused to start.  I upped it to 32 and the result
> was the same.
> I looked in both /var/log/messages and in /usr/local/pgsql/logfile
> and found nothing about _why_ it wouldn't start,

There's something broken about your logging setup then, because the
postmaster will most definitely tell you why it's not starting:

$ postmaster -B 16
postmaster: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.
$ postmaster -B 32
postmaster: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.
$

Without having looked at the code, I think that these very-early-startup
messages may only get sent to stderr and not syslog; so take another
look at what you're doing with the postmaster's stderr.

            regards, tom lane

Re: Problems tuning shared_buffers value

From
Bill Moran
Date:
Tom Lane wrote:
> Bill Moran <wmoran@potentialtech.com> writes:
>
>>curious about some things, so I set shared_buffers to 16 (which the
>>config file claims is the lowest allowable value)  The result was
>>that Postgre refused to start.  I upped it to 32 and the result
>>was the same.
>>I looked in both /var/log/messages and in /usr/local/pgsql/logfile
>>and found nothing about _why_ it wouldn't start,
>
>
> There's something broken about your logging setup then, because the
> postmaster will most definitely tell you why it's not starting:
>
> $ postmaster -B 16
> postmaster: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.
> $ postmaster -B 32
> postmaster: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.
> $
>
> Without having looked at the code, I think that these very-early-startup
> messages may only get sent to stderr and not syslog; so take another
> look at what you're doing with the postmaster's stderr.

Ahhhh ... The startup script that the FreeBSD ports install redirects it
to /var/log/pgsql, which I hadn't noticed.
And I see the exact error messages you describe.

Thanks, Tom.

--
Bill Moran
Potential Technologies
http://www.potentialtech.com