On 7/9/06, James W. Anderson <jwanderson@xxxxxxxxxxxxx> 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. Joshua. --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx