25.5. Performance Tuning

Click on the Performance Tuning tab to configure the maximum number of child server processes you want and to configure the Apache HTTP Server options for client connections. The default settings for these options are appropriate for most situations. Altering these settings may affect the overall performance of your Web server.

Figure 25-11. Performance Tuning

Set Max Number of Connections to the maximum number of simultaneous client requests that the server can handle. For each connection, a child httpd process is created. After this maximum number of processes is reached, no one else can connect to the Web server until a child server process is freed. You can not set this value to higher than 256 without recompiling. This option corresponds to the MaxClients directive.

Connection Timeout defines, in seconds, the amount of time that your server waits for receipts and transmissions during communications. Specifically, Connection Timeout defines how long your server waits to receive a GET request, how long it waits to receive TCP packets on a POST or PUT request, and how long it waits between ACKs responding to TCP packets. By default, Connection Timeout is set to 300 seconds, which is appropriate for most situations. This option corresponds to the TimeOut directive.

Set the Max requests per connection to the maximum number of requests allowed per persistent connection. The default value is 100, which should be appropriate for most situations. This option corresponds to the MaxRequestsPerChild directive.

If you check the Allow unlimited requests per connection option, the MaxKeepAliveRequests directive is set to 0 and unlimited requests are allowed.

If you uncheck the Allow Persistent Connections option, the KeepAlive directive is set to false. If you check it, the KeepAlive directive is set to true, and the KeepAliveTimeout directive is set to the number that is selected as the Timeout for next Connection value. This directive sets the number of seconds your server waits for a subsequent request, after a request has been served, before it closes the connection. Once a request has been received, the Connection Timeout value applies instead.

Setting the Persistent Connections to a high value may cause the server to slow down, depending on how many users are trying to connect to it. The higher the number, the more server processes are waiting for another connection from the last client that connected to it.