Обсуждение: Problems tuning shared_buffers value
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
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
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