2011년 8월 8일 월요일

[Plug-in] Understanding HTTP plug-in failover in a clustered environment

Understanding HTTP plug-in failover in a clustered environment


Problem(Abstract)

After setting up the HTTP plug-in for load balancing in a clustered IBM WebSphere environment, the request load is not evenly distributed among back-end WebSphere Application Servers.

Cause

In most cases, the preceding behavior is observed because of a misunderstanding of how HTTP plug-in load balancing algorithms work or might be due to an improper configuration. Also, the type of Web server (multi-threaded versus single threaded) being used can effect this behavior.

Resolving the problem

The following document is designed to assist you in understanding how HTTP plug-in load balancing works along with providing you some helpful tuning parameters and suggestions to better maximize the ability of the HTTP plug-in to distribute load evenly.

Note: The following information is written specifically for the IBM HTTP Server, however, this information in general is applicable to other Web servers which currently support the HTTP plug-in (for example: IIS, SunOne, Domino, and so on).
Also, The WebSphere plug-in versions 6.1 and later offer the property "IgnoreAffinityRequests" to address the limitation outlined in this technote. In addition, WebSphere versions 6.1 and later offer better facilities for updating the configuration through the administrative panels without manual editing.

For additional information regarding this plug-in property, visit IgnoreAffinityRequests


Load Balancing






​​​​​​
<ServerCluster CloneSeparatorChange="false" LoadBalance="Round Robin"​​
​​Name="Server_WebSphere_Cluster" PostSizeLimit="10000000" RemoveSpecialHeaders="true" RetryInterval="60">​​
​​
​​<Server CloneID="10k66djk2" ConnectTimeout="0" ExtendedHandshake="false" LoadBalanceWeight="1" MaxConnections="0" Name="Server1_WebSphere_Appserver" WaitForContinue="false">​​
​​<Transport Hostname="server1.domain.com" Port="9091" Protocol="http"/>​​
​​</Server>​​
​​
​​<Server CloneID="10k67eta9" ConnectTimeout="0" ExtendedHandshake="false"​​
​​LoadBalanceWeight="1" MaxConnections="0" Name="Server2_WebSphere_Appserver" WaitForContinue="false">​​
​​<Transport Hostname="server2.domain.com" Port="9091" Protocol="http"/>​​
​​</Server>​​
​​
​​<PrimaryServers>​​
​​<Server Name="Server1_WebSphere_Appserver"/>​​
​​<Server Name="Server2_WebSphere_Appserver"/>​​
​​</PrimaryServers>​​
​​</ServerCluster>​​


​​
​​
​​​​​​
<ServerCluster CloneSeparatorChange="false" LoadBalance="Random"​​
​​Name="Server_WebSphere_Cluster" PostSizeLimit="10000000" RemoveSpecialHeaders="true" RetryInterval="60">​​
​​
​​<Server CloneID="10k66djk2" ConnectTimeout="0" ExtendedHandshake="false" LoadBalanceWeight="2" MaxConnections="0" Name="Server1_WebSphere_Appserver" WaitForContinue="false">​​
​​<Transport Hostname="server1.domain.com" Port="9091" Protocol="http"/>​​
​​</Server>​​
​​
​​<Server CloneID="10k67eta9" ConnectTimeout="0" ExtendedHandshake="false"​​
​​LoadBalanceWeight="2" MaxConnections="0" Name="Server2_WebSphere_Appserver" WaitForContinue="false">​​
​​<Transport Hostname="server2.domain.com" Port="9091" Protocol="http"/>​​
​​</Server>​​
​​
​​<PrimaryServers>​​
​​<Server Name="Server1_WebSphere_Appserver"/>​​
​​<Server Name="Server2_WebSphere_Appserver"/>​​
​​</PrimaryServers>​​
​​</ServerCluster> ​​

​​​​
UNIX:​​
​​<IfModule worker.c>​​
​​ThreadLimit 250​​
​​ServerLimit 2​​
​​StartServers 2​​
MaxClients 500​​
MinSpareThreads 2​​
MaxSpareThreads 325​​

​​ThreadsPerChild 250​​
MaxRequestsPerChild 10000​​
</IfModule> ​​


Related information

댓글 없음:

댓글 쓰기