Tom Arthurs wrote:
> Yes, shared buffers in postgres are not used for caching
Shared buffers in Postgres _are_ used for caching, they just form a
secondary cache on top of the kernel's IO cache. Postgres does IO
through the filesystem, which is then cached by the kernel. Increasing
shared_buffers means that less memory is available for the kernel to
cache IO -- increasing shared_buffers has been shown to be a net
performance loss beyond a certain point. Still, there is value in
shared_buffers as it means we can avoid a read() system call for hot
pages. We can also do better buffer replacement in the PG shared buffer
than the kernel can do (e.g. treating IO caused by VACUUM specially).
> My biggest challenge with solaris/sparc is trying to reduce context
> switching.
It would be interesting to see if this is improved with current sources,
as Tom's bufmgr rewrite should have hopefully have reduced this problem.
-Neil