Thread: How to determine if my setting for shared_buffers is too high?

How to determine if my setting for shared_buffers is too high?

From
Bill Moran
Date:
I'm gearing up to do some serious investigation into performance for
PostgreSQL with regard to our application.  I have two issues that I've
questions about, and I'll address them in two seperate emails.

This one regards tuning shared_buffers.

I believe I have a good way to monitor database activity and tell when
a database grows large enough that it would benefit from more
shared_buffers: if I monitor the blks_read column of pg_stat_database,
it should increase very slowly if there is enough shared_buffer
space.  When shared buffer space runs out, more disk read requests
will be required and this number will begin to climb.

If anyone sees a flaw in this approach, I'd be interested to hear it.

The other tuning issue with shared_buffers is how to tell if I'm
allocating too much.  For example, if I allocate 1G of RAM to
shared buffers, and the entire database can fit in 100M, that 900M
might be better used as work_mem, or something else.

I haven't been able to find anything regarding how much of the
shared buffer space PostgreSQL is actually using, as opposed to
simply allocating.

--
Bill Moran
Collaborative Fusion Inc.

wmoran@collaborativefusion.com
Phone: 412-422-3463x4023

Re: How to determine if my setting for shared_buffers is too high?

From
Tom Lane
Date:
Bill Moran <wmoran@collaborativefusion.com> writes:
> I haven't been able to find anything regarding how much of the
> shared buffer space PostgreSQL is actually using, as opposed to
> simply allocating.

In 8.1 and up, contrib/pg_buffercache/ would give you some visibility
of this.

            regards, tom lane

Re: How to determine if my setting for shared_buffers is too high?

From
"Jim C. Nasby"
Date:
Remember that as you increase shared_buffers you might need to make the
bgwriter more aggressive too.

On Thu, Dec 07, 2006 at 11:42:39AM -0500, Bill Moran wrote:
>
> I'm gearing up to do some serious investigation into performance for
> PostgreSQL with regard to our application.  I have two issues that I've
> questions about, and I'll address them in two seperate emails.
>
> This one regards tuning shared_buffers.
>
> I believe I have a good way to monitor database activity and tell when
> a database grows large enough that it would benefit from more
> shared_buffers: if I monitor the blks_read column of pg_stat_database,
> it should increase very slowly if there is enough shared_buffer
> space.  When shared buffer space runs out, more disk read requests
> will be required and this number will begin to climb.
>
> If anyone sees a flaw in this approach, I'd be interested to hear it.
>
> The other tuning issue with shared_buffers is how to tell if I'm
> allocating too much.  For example, if I allocate 1G of RAM to
> shared buffers, and the entire database can fit in 100M, that 900M
> might be better used as work_mem, or something else.
>
> I haven't been able to find anything regarding how much of the
> shared buffer space PostgreSQL is actually using, as opposed to
> simply allocating.
>
> --
> Bill Moran
> Collaborative Fusion Inc.
>
> wmoran@collaborativefusion.com
> Phone: 412-422-3463x4023
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>

--
Jim Nasby                                            jim@nasby.net
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)