Web server plug-in tuning tips
Important tips for Web server plug-in tuning include how to balance workload and improve performance in a high stress environment. Balancing workloads among appservers in a network fronted by a Web server plug-in helps improve request response time.
Balancing workloads
During normal operation, the backlog of connections pending to an appserver is bound to grow. Therefore, balancing workloads among appservers in a network fronted by a Web server plug-in helps improve request response time. You can limit the number of connections that can be handled by an applications server. To do this:
- Go to the Servers > Application Servers > server_name.
- Under Additional Properties, click > Web Server Plug-in properties .
- Select Set limit for the Minimum number of connections that can be handled by the Application Server field.
- Specify in the Connections field the maximum number of connections you want to allow.
- Then click Apply and Save.
When this maximum number of connections is reached, the plug-in, when establishing connections, automatically skips that appserver, and tries the next available appserver. If no appservers 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. The capacity of the appservers in the network determines the value you specify for the maximum number of connections. The ideal scenario is for all of the appservers in the network to be optimally utilized. For example, if you have the following environment:
- There are 10 appservers in a cluster.
- All of these appservers host the same applications (that is, Application_1 and Application_2).
- This cluster of appservers is fronted by five IBM HTTP Servers.
- The IBM HTTP Servers get requests through a load balancer.
- Application_1 takes approximately 60 seconds to respond to a request
- Application_2 takes approximately 1 second to respond to a request.
Depending on the request arrival pattern, all requests to Application_1 might be forwarded to two of the appservers, 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.
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 appserver works best for Web servers that follow the threading model instead of the process model, and only one process is started.
The IBM HTTP Server V6.1 follows the threading model. To prevent the IBM HTTP Server from starting more than one process, change the following properties in the Web server configuration file (httpd.conf) to the indicated values:
ServerLimit 1 ThreadLimit 4000 StartServers 1 MaxClients 1024 MinSpareThreads 1 MaxSpareThreads 1024 ThreadsPerChild 1024 MaxRequestsPerChild 0
Improving performance in a high stress environment
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. To tune the TcpTimedWaitDelay setting, change the value of the tcp_time_wait_interval parameter from the default value of 240 seconds, to 30 seconds:
- Locate in the Windows Registry:
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.
- Specify, in seconds, a value between 30 and 300 inclusive for this entry. (IBM recommends specified a value of 30. )
To tune the MaxUserPort setting:
- Locate in the Windows Registry:
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.
- Set the maximum number of ports to a value between 5000 and 65534 ports, inclusive. (IBM recommends specified a value of 65534,)
See the Microsoft Web site for more information about these settings.
Related tasks
Communicating with Web servers
Reference topic