Re: Restricting Postgres - Mailing list pgsql-performance

From Matt Clark
Subject Re: Restricting Postgres
Date
Msg-id 009701c4c248$6d5298e0$8300a8c0@solent
Whole thread Raw
In response to Re: Restricting Postgres  (Martin Foster <martin@ethereal-realms.org>)
Responses Re: Restricting Postgres
List pgsql-performance
> I have a dual processor system that can support over 150 concurrent
> connections handling normal traffic and load.   Now suppose I setup
> Apache to spawn all of it's children instantly, what will
...
> This will spawn 150 children in a short order of time and as
> this takes

"Doctor, it hurts when I do this!"
"Well, don't do that then..."

Sorry, couldn't resist ;-)

Our Apache/PG driven website also needs to be able to deal with occasional
large peaks, so what we do is:

StartServers 15        # Don't create too many children initially
MinSpareServers 10    # Always have at least 10 spares lying around
MaxSpareServers 20    # But no more than 20
MaxClients 150        # Up to 150 - the default 256 is too much for our
RAM


So on server restart 15 Apache children are created, then one new child
every second up to a maximum of 150.

Apache's 'ListenBackLog' is around 500 by default, so there's plenty of
scope for queuing inbound requests while we wait for sufficient children to
be spawned.

In addition we (as _every_ high load site should) run Squid as an
accelerator, which dramatically increases the number of client connections
that can be handled.  Across 2 webservers at peak times we've had 50,000
concurrently open http & https client connections to Squid, with 150 Apache
children doing the work that squid can't (i.e. all the dynamic stuff), and
PG (on a separate box of course) whipping through nearly 800 mixed selects,
inserts and updates per second - and then had to restart Apache on one of
the servers for a config change...  Not a problem :-)

One little tip - if you run squid on the same machine as apache, and use a
dual-proc box, then because squid is single-threaded it will _never_ take
more than half the CPU - nicely self balancing in a way.

M


pgsql-performance by date:

Previous
From: Mario Ivankovits
Date:
Subject: index not used if using IN or OR
Next
From: Richard Huxton
Date:
Subject: Re: index not used if using IN or OR