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

--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Reply via email to