Manage server performance for HTTP Server (powered by Apache)

This topic provides information about how to manage your HTTP Server performance.

Important: Information for this topic supports the latest PTF levels for HTTP Server for i5/OS . It is recommended that you install the latest PTFs to upgrade to the latest level of the HTTP Server for i5/OS. Some of the topics documented here are not available prior to this update. See http://www.ibm.com/servers/eserver/iseries/software/http/services/service.htm Link outside Information Center for more information.

There are several things that can affect your server's performance. Consider the following performance related topics:

Local cache

Enabling the HTTP Server's local cache can result in better performance and system throughput by caching (in memory) frequently accessed files. You can configure several settings associated with the local cache.

To configure the local cache settings, do the following:

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server (powered by Apache) from the Server list.
  4. Select the Global configuration from the Server area list.
  5. Expand Server Properties.
  6. Click System Resources.
  7. Click the Caching tab in the form.

Enter or select options from this form. After you are finished, click OK.

Files to cache when server has started

Including file names in Files to cache when server is started causes the files to be loaded into the server's memory when the server is started.

What to cache allows you to specify what information is included in the cache.

Enter or select options from this form. After you are finished, click OK.

Threads

Each time your server receives a client request, the server first checks to see if any threads are available and then uses available threads to process the request. If no threads are available, it holds the request until threads become available. When a request ends, the server threads become idle (at which point they are available for the server to use again).

Note: The HTTP Server performance may increase by increasing the number of threads, but not the iSeries™ system performance.

Setting the maximum number of active threads too high can cause a decrease in system performance. You can experiment with lowering the maximum number of active threads until you see no affect on system performance. A good starting point would be half of the previous setting. For example, if you had the maximum number of active threads set to 100, try setting it to 50. Lowering the maximum number of active threads directive might result in an increased number of rejected connections when the server reaches its capacity.

To change the number of threads to process requests, do the following:

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server (powered by Apache) from the Server list.
  4. Select the Global configuration from the Server area list.
  5. Expand Server Properties.
  6. Click System Resources.
  7. Click the Advanced tab in the form.

Enter or select options from this form. After you are finished, click OK.

DNS lookups

Every time the server needs to request a DNS lookup, there may be a delay while the DNS server is contacted. Limit the use of DNS lookups. Consider logging IP addresses and using a log analysis tool that does DNS lookups.

Server-side includes

Server performance can be impacted when server-side includes are processed. Limit the use of server-side includes except where needed.

Content negotiation

Restrict content negotiation to those contexts where it is needed.

Document tree

Try to organize your document tree into a flat broad tree structure rather than a narrow deep tree structure. The fewer directory levels the better.

For better performance, store static and Net.Data® files in the root (or /) file system. Avoid placing static and Net.Data files in the QSYS and QDLS file systems.

.htaccess files

Server performance is impacted if the server must look for and open .htaccess files. If the AllowOverride directive is set to None, the server does not look for .htaccess files. If AllowOverride is set to All, there is a significant performance impact as the server looks for .htaccess files in every directory.

Virtual host log files

If you create separate log files for each virtual host, you should consider that a file descriptor is opened for each log file. Opening too many file descriptors can impact system performance.

KeepAlive and KeepAliveTimeout

The connection time-out determines the number of seconds the server waits for a subsequent request before closing a persistent connection. Enabling persistent connections increases the throughput of your server. Consider decreasing the connection time-out if you have simple pages without images.

To set this value, do the following:

  1. Click the Manage tab.
  2. Click the HTTP Servers subtab.
  3. Select your HTTP Server (powered by Apache) from the Server list.
  4. Select the Global configuration from the Server area list.
  5. Expand Server Properties.
  6. Click System Resources.
  7. Click the HTTP Connections tab in the form.
  8. Enter a value for Connection time-out, or make a selection from the list.
  9. Enter a value for Maximum pending connections, or make a selection from the list.
  10. Select Enabled for Allow persistent connections.
  11. Enter a value for Time to wait between requests, or make a selection from the list.
  12. Enter a value for Maximum requests per connection, or make a selection from the list.
  13. Click OK.

Logging

Logging server activity does impact server performance. Try to do as little error and access logging as required.

CGI programs

CGI programs should be run in a named activation group to get the best performance. Also determine what CGI jobs your server generally uses. Use the StartCGI and StartThreadedCGI directives to start those jobs when the server starts. Use the QTMHHTP1 user profile to run CGI requests. If you must use a different user profile, use a "dummy" user profile (a user profile that is not allowed to sign-on) instead of %%CLIENT%%.

TCP/IP settings

See Adjusting your TCP/IP configuration for more information on TCP/IP settings.

Network

Consider that the performance of the network that your data flows across can also affect the perception of your server's performance.