httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joshua Slive" <>
Subject Re: [users@httpd] Performance Tuning Documentation?
Date Mon, 10 Jul 2006 14:58:40 GMT
On 7/9/06, James W. Anderson <> wrote:
> Does anyone have any recommendations for books, PDFs, or other forms of
> documentation that describe in detail how to tune Apache for performance?
> I've read the tips on the Apache website, but I still have many questions
> about the way Apache handles requests, such as:
> Why doesn't it return an HTTP error when the number of concurrent users
> exceeds MaxClients?

Because in order to return an HTTP error, there must be a process
available to accept, process, and reply to the request (with the error
code).  When you are at MaxClients, all the processes are busy.  (And
in many circumstances, it would be silly to devote processes to
sending "busy" error messages when they could simply be replying to
clients with the requested resources.)

> What's a reasonable setting for Timeout, KeepAliveTimeout and
> MaxKeepAliveRequests, and exactly when do the counters for each timeout
> begin?

Timout should be relatively low unless you have long-running CGI
scripts that take a long time to send output.  But it really only
matters if you are getting DoS attacks.  KeepAliveTimeout should be as
high as possible (say 10 or 15 seconds), but needs to be lowered if
you don't otherwise have enough processes to serve requests (because
KeepAlives tie up processes waiting for clients.  The default of 5
seconds is a compromise on that.  (You can also look at the event mpm
wich eliminates the need for a KeepAliveTimeout by handling KeepAlives
in another thread.)  MaxKeepAliveRequests can be arbitrarily high
unless you have DoS problems.

> Are the default settings for StartServers, MinSpareServers, and
> MaxSpareServers optimal for most situations?

These only have an effect when the server starts out and when it
adjusts to load.  If you find that the server adjusts slowly to load,
or takes a while to ramp-up, you can increase these numbers.  (But
make sure to keep a decent gap between Min and MaxSpareServers so that
apache isn't constantly creating and killing processes.)

That's all very general stuff.  If you want specifics, you need to be
more specific in your questions.  I don't know of any web resources on
this stuff other than the apache docs, but I'm sure some of the apache
books cover this territory.


The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message