Hi,
Gerd König a écrit :
> we're quite new to Postgres and we're going to start using Postgres8.3
> on Opensuse10.3 64 bit. We have a dedicated dbserver with 8GB RAM, and
> now I'm not sure how to deal with the memory/buffer settings. The db
> will be accessed heavily (~20 requests/sec.) with a read/write ration of
> 50:50, yes, a lot of write activity.
>
> I thought of setting "shared_buffers" to 750000 (~6GB) but how depends
> this on the kernel buffer setting in /etc/sysctl.conf (what is the
> interaction between these two settings?).
> I know the variable "shmmax" can be defined, but currently there's no
> such entry.
>
shared_buffers should be set to 1/4 of your available RAM. It's a start
value, you can tweak it after that, but you would probably be better
advised to use 2GB to begin with.
> The meaning of "work_mem" / "maintenance_work_mem" and "wal_buffers" is
> also not clear. The maintenance_work_mem influences the size of the WAL
> logs..?!?
>
work_mem is used for sort and group operations (for example, ORDER BY).
It's not part of the shared_buffers memory and it will be used by every
postgres process. So you better have small values, something between 1
MB and 64 MB.
maintenance_work_mem is used for maintenance operations (VACUUM, CREATE
INDEX and another one I don't remember now). You can use bigger values
because you won't have many operations of this kind that will happen at
the same time. Probably 256 MB would be a good start value.
> What else are "top performance related" options for the usage scenario I
> described earlier ?
>
Checkpoint and WAL settings are important ones. FSM size is another one.
Regards.
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com