Thread: 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