Memory tuning Postgres
I have a 4 core, 4 GB server dedicated to running Postgres (only other
thing on it are monitoring, backup, and maintenance programs). It
runs about 5 databases, backing up an app, mainly ORM queries, but
some reporting and more complicated SQL JOINs as well.
I'm currently using the out-of-the box postgresql.conf, but I get the
sense that isn't using all the resources it should.
What parameters should I change to use the server best? What are good
starting points or them? What type of performance increase should I
see?
From basic research, it seems shared_buffers should be 1G, and
effective_cache_size 3G. Is that correct? Can you suggest what other
params I should change, and to what?
On 15 Únor 2012, 15:20, Robert James wrote:
I have a 4 core, 4 GB server dedicated to running Postgres (only other
thing on it are monitoring, backup, and maintenance programs). It
runs about 5 databases, backing up an app, mainly ORM queries, but
some reporting and more complicated SQL JOINs as well.I'm currently using the out-of-the box postgresql.conf, but I get the
sense that isn't using all the resources it should.What parameters should I change to use the server best? What are good
starting points or them? What type of performance increase should I
see?From basic research, it seems shared_buffers should be 1G, and
effective_cache_size 3G. Is that correct? Can you suggest what other
params I should change, and to what?
Actually there's a nice wiki page about tuning:
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
Yes, 1GB (25%) of RAM is generally the recommended value. But you haven't
mentioned which version of PostgreSQL is used and what is the size of the
database. Older version / small database would work fine even with smaller
shared buffers.
The other parameters that may be interesting are probably
checkpoint_segments, checkpoint_completion_target, work_mem,
maintenance_work_mem (read the wiki, it's described there).
You should also tweak the log_line_prefix (use something that works with
pgfounie), log_checkpoints/log_temp_files and maybe set reasonable value
to log_statement_min_duration.
T.
On 2/15/12, Tomas Vondra <tv@fuzzy.cz> wrote:
On 15 Únor 2012, 15:20, Robert James wrote:
What parameters should I change to use the server best? What are good
starting points or them? What type of performance increase should I
see?
...
But you haven't
mentioned which version of PostgreSQL is used and what is the size of the
database.
Pg 8.3, Linux. Each individual database when dumped to a .sql file
takes between 1 - 3 GB.
The other parameters that may be interesting are probably
checkpoint_segments, checkpoint_completion_target, work_mem,
maintenance_work_mem (read the wiki, it's described there).You should also tweak the log_line_prefix (use something that works with
pgfounie), log_checkpoints/log_temp_files and maybe set reasonable value
to log_statement_min_duration.
Thanks. Can you give me starting points for those for a 4 core 4 GB
Ram server with about 10 GB of data?