Important tips for web server plug-in tuning include how to balance workload and improve performance in a high stress environment. Balancing workloads among application servers in a network fronted by a web server plug-in helps improve request response time.
This product uses the z/OS® native Workload Management (WLM) functionality to dynamically balance the workload of application servers defined to a z/OS HTTP Server, Version 5.3, or an IBM® HTTP Server for WebSphere® Application Server on z/OS See the z/OS publication HTTP Server Planning, Installing and Using for more information about the z/OS HTTP Server, Version 5.3. Information about the IBM HTTP Server for WebSphere Application Server on z/OS is contained in this Information Center.
During normal operation, the backlog of connections pending to an application server is bound to grow. Therefore, balancing workloads among application servers in a network fronted by a web server plug-in helps improve request response time.
When this maximum number of connections is reached, the plug-in, when establishing connections, automatically skips that application server, and tries the next available application server. If no application servers are available, an HTTP 503 response code will be returned to the client. This code indicates that the server is currently unable to handle the request because it is experiencing a temporary overloading or because maintenance is being performed.
Depending on the request arrival pattern, all requests to Application_1 might be forwarded to two of the application servers, say Appsvr_1 and Appsvr_2. If the arrival rate is faster than the processing rate, the number of pending requests to Appsvr_1 and Appsvr_2 can grow.
Eventually, Appsvr_1 and Appsvr_2 are busy and are not able to respond to future requests. It usually takes a long time to recover from this overloaded situation.
If you want to maintain 2500 connections, and optimally utilize the Application Servers in this example, set the number of maximum connections allowed to 50. (This value is arrived at by dividing the number of connections by the result of multiplying the number of Application Servers by the number of web servers; in this example, 2500/(10x5)=50.)
Limiting the number of connections that can be established with an application server works best for web servers that follow use a single, multithreaded process for serving requests.
IBM HTTP Server uses a single, multithreaded process for serving requests. No configuration changes are required.
IBM HTTP Server typically uses multiple multithreaded processes for serving requests. Specify the following values for the properties in the web server configuration file (httpd.conf) to prevent the IBM HTTP Server from using more than one process for serving requests.
ServerLimit 1 ThreadLimit 1024 StartServers 1 MaxClients 1024 MinSpareThreads 1 MaxSpareThreads 1024 ThreadsPerChild 1024 MaxRequestsPerChild 0
If you use the default settings for a Microsoft® Windows® operating system, you might encounter web server plug-in performance problems if you are running in a high stress environment. To avoid these problems, consider tuning the TCP/IP setting for this operating system. Two of the keys setting to tune are TcpTimedWaitDelay and MaxUserPort.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelayIf this entry does not exist in your Windows Registry, create it by editing this entry as a new DWORD item.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPortIf this entry does not exist in your Windows Registry, create it by editing this entry as a new DWORD item.
See the Microsoft website for more information about these settings.