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

From Paul Serby
Subject Re: The black art of postgresql.conf tweaking
Date
Msg-id 411789F1.6020305@clockltd.com
Whole thread Raw
In response to The black art of postgresql.conf tweaking  (Paul Serby <paul.serby@clockltd.com>)
Responses Re: The black art of postgresql.conf tweaking
List pgsql-performance
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thanks to everyone for there help.

I've changed my postgres settings to the following

max_connections = 500
shared_buffers = 10000
sort_mem = 2000
effective_cache_size = 5000

The 'effective_cache_size' is just a guess, but some references suggest
it so I added it.

Dropping the Apache Keep-alive down to 3 seconds seems to have was a
great tip I now have far less idle connections hanging about.

I've not maxed out the connections since making the changes, but I'm
still not convinced everything is running as well as it could be. I've
got some big result sets that need sorting and I'm sure I could spare a
bit more sort memory.

Where does everyone get there information about the settings? I still
can't find anything that helps explain each of the settings and how you
determine there optimal settings.

If anyone wants interested here is a table schema form one of the most
used tables.

CREATE TABLE "tblForumMessages" (
~    "pk_iForumMessagesID" serial,
~    "fk_iParentMessageID" integer DEFAULT 0 NOT NULL,
~    "fk_iAuthorID" integer NOT NULL,
~    "sSubject" character varying(255) NOT NULL,
~    "sBody" text,
~    "fk_iImageID" oid,
~    "dtCreatedOn" timestamp with time zone DEFAULT now(),
~    "iType" integer DEFAULT 0,
~    "bAnonymous" boolean DEFAULT false,
~    "bLocked" boolean DEFAULT false,
~    "dtHidden" timestamp with time zone,
~    "fk_iReplyToID" integer,
~    "iCreateLevel" integer DEFAULT 7
);

This is the query that is most called on the server explained

EXPLAIN ANALYZE SELECT "tblForumMessages".* FROM "tblForumMessages"
WHERE "fk_iParentMessageID" = 90 ORDER BY "dtCreatedOn" DESC

Which gives the following:

Sort  (cost=8156.34..8161.71 rows=2150 width=223) (actual
time=0.264..0.264 rows=0 loops=1)
~   Sort Key: "dtCreatedOn"
~   ->  Index Scan using "fk_iParentMessageID_key" on "tblForumMessages"
~ (cost=0.00..8037.33 rows=2150 width=223) (actual time=0.153..0.153
rows=0 loops=1)
~         Index Cond: ("fk_iParentMessageID" = 90)
~ Total runtime: 0.323 ms

SELECT COUNT(*) FROM "tblForumMessages" WHERE "fk_iParentMessageID" = 90
Returns: 22920

SELECT COUNT(*) FROM "tblForumMessages"
Returns: 429913

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
| sort_mem = 12000
|
| 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.
|
| 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?
|
| Is there a scientific method for optimizing postgres or is it all
| 'finger in the air' and trial and error.
|
| ---------------------------(end of broadcast)---------------------------
| TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBF4nxp51pUZR6gxsRAi8cAJ9HBfpNMGQR7vurk0wYW+p6KfqZzACfc9NX
k72iabZxK+gku06Pf7NmHfQ=
=Ftv6
-----END PGP SIGNATURE-----

pgsql-performance by date:

Previous
From: Jim Thomason
Date:
Subject: performance with column orders
Next
From: Shridhar Daithankar
Date:
Subject: Re: The black art of postgresql.conf tweaking