(iSeries)
Tune web servers for IBM i
The product provides plug-ins for several web server brands and versions. If we are running the web server on a non-IBM i platform, see the product documentation for performance tuning information.
For additional information, refer to Chapter 6 of the Performance Capabilities Reference Manual. This manual is available in the Performance Management Resource Library.
The IBM HTTP Server (powered by Apache) is a multi-process, multi-threaded server. To tune this web server:
Tasks
- Enable the access logs. The access logs record all incoming HTTP requests. Logging can degrade performance even though logging occurs in a separate process from the web server function.
By default, the access log is disabled. IBM recommends that we do not enable the access logs unless we need a record of all incoming HTTP requests.
To enable the access logs:
- Open the IBM HTTP Server httpd.conf file, located in the /QIBM/ProdData/HTTPA/conf directory.
- Search for lines with the text CustomLog.
- Remove the hash mark (#) at the beginning of the line to enable a custom access log.
- Save and close the httpd.conf file.
- Stop and restart the IBM HTTP Server.
- Change the ThreadsPerChild directive setting. The ThreadsPerChild directive specifies the maximum number of concurrent client requests that the server processes at any time. The web server uses one thread for each request that it processes. The value specified for this directive does not represent the number of active clients.
To change the ThreadsPerChild directive setting:
- Open the IBM HTTP Server httpd.conf file, located in the /QIBM/ProdData/HTTPA/conf directory.
- Search for the ThreadsPerChild directive.
- Change the setting. The default is 40. IBM recommends that you either use the default value or increase the value if we need to increase the number of concurrent client requests that the server can process at any time. We should not decrease the setting of this directive.
- Save and close the httpd.conf file.
- Stop and restart the IBM HTTP Server.
- Change the ListenBackLog directive setting. This directive specifies the length of the pending connections queue. When several clients request connections to the IBM HTTP Server, and all threads are in use, a queue is created to hold additional client requests.
If we use the default Fast Response Cache Accelerator (FRCA) feature, the value specified for the ListenBackLog directive is ignored, because FRCA uses its own internal queue.
To change the ListenBackLog directive setting:
- Open the IBM HTTP Server httpd.conf file, located in the /QIBM/ProdData/HTTPA/conf directory.
- Search for the ListenBackLog directive.
- Change the setting. For the IBM HTTP Server 1.3.26, the default setting is 1024 if FRCA is enabled, and 511 if FRCA disabled. IBM recommends that we use these default values.
- Save and close the httpd.conf file.
- Stop and restart the IBM HTTP Server.
Implement a web server plug-in