Re: The black art of postgresql.conf tweaking - Mailing list pgsql-performance

From Paul Thomas
Subject Re: The black art of postgresql.conf tweaking
Date
Msg-id 20040804144408.A17081@bacon
Whole thread Raw
In response to The black art of postgresql.conf tweaking  (Paul Serby <paul.serby@clockltd.com>)
List pgsql-performance
On 04/08/2004 13:45 Paul Serby wrote:
> Can anyone give a good reference site/book for getting the most out of
> your postgres server.
>
> All I can find is contradicting theories on how to work out your
> settings.
>
> This is what I followed to setup our db server that serves our web
> applications.
>
> http://www.phpbuilder.com/columns/smith20010821.php3?page=2
>
> We have a Dell Poweredge with the following spec.
>
> CPU: Intel(R) Xeon(TM) CPU 3.06GHz (512 KB Cache)
> CPU: Intel(R) Xeon(TM) CPU 3.06GHz (512 KB Cache)
> CPU: Intel(R) Xeon(TM) CPU 3.06GHz (512 KB Cache)
> CPU: Intel(R) Xeon(TM) CPU 3.06GHz (512 KB Cache)
> Physical Memory: 2077264 kB
> Swap Memory: 2048244 kB
>
> Apache on the Web server can take up to 300 connections and PHP is
> using  pg_pconnect
>
> Postgres is set with the following.
>
> max_connections = 300
> shared_buffers = 38400

Might be higher that neccessary. Some people reckon that there's no
measurable performance going above ~10,000 buffers


> sort_mem = 12000

Do you really need 12MB of sort memory? Remember that this is per
connection so you could end up with 300x that being allocated in a worst
case scenario.

>
> But Apache is still maxing out the non-super user connection limit.
>
> The machine is under no load and I would like to up the max_connections
> but I would like to know more about what you need to consider before
> doing so.

I can't think why you should be maxing out when under no load. Maybe you
need to investigate this further.

>
> The only other source I've found is this:
>
> http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html
>
> But following its method my postgres server locks up straight away as it
> recommends setting max_connections to 16 for Web sites?

I think you've mis-interpreted that. She's talking about using persistent
connections - i.e., connection pooling.

>
> Is there a scientific method for optimizing postgres or is it all
> 'finger in the air' and trial and error.

Posting more details of the queries which are giving the performance
problems will enable people to help you. You're vacuum/analyzing regularly
of course ;) People will want to know:

- PostgreSQL version
- hardware configuration (SCSI or IDE? RAID level?)
- table schemas
- queries together with EXPLAIN ANALYZE output


also output from utils like vmstat, top etc may be of use.

HTH

--
Paul Thomas
+------------------------------+---------------------------------------------+
| Thomas Micro Systems Limited | Software Solutions for
Business             |
| Computer Consultants         |
http://www.thomas-micro-systems-ltd.co.uk   |
+------------------------------+---------------------------------------------+

pgsql-performance by date:

Previous
From: Janning Vygen
Date:
Subject: Re: The black art of postgresql.conf tweaking
Next
From: Valerie Schneider DSI/DEV
Date:
Subject: Re: Tuning queries on large database