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