WebSphere Tuning Approach
Workload Management
The process of sharing requests across many instances of a resource is known as Workload management. This is an important phenomenon for scalability and performance. Such techniques can help the system in serving more concurrent requests.
The two main features of workload management are Load balancing and Session Affinity.
The capability of sending requests to alternate instances is called Load balancing. With workload management, you can use the resources effectively by distributing various loads more evenly. The management algorithms are useful in routing around the potential bottlenecks and overloaded components. In case of failed components, these management techniques offer high resiliency by routing all the requests to duplicate resource copies.
Session Affinity denotes the ability of routing concurrent requests to the same resource that served the first request.
Workload management, as a part of Websphere tuning, could be achieved by sharing requests across one or more application servers, each running a copy of the application. To maintain the session state, websphere server can route concurrent requests from a user to the same application server.
By clustering the application servers that are hosting web containers, you can immediately enable plug-in workload management for the application servers and the hosted servlets.
The following figure describes the routing of servlet requests between the clustered application servers and web server plug-in.
We can have a couple of load balancing options with Websphere Application Server:
Round-robin
This option is based on the weight associated with cluster members. If all the members have similar weights, the plug-in distributes equal requests to all members of the cluster (without heavy affinity configurations). If all the weights are scaled from 0 to 15, the plug-in sends requests more often to the members with higher values of weights. Requests are not sent to the members with a weight of 0 unless no other servers are available.
You can use the following formula to determine the routing preference, where n cluster members are in a cluster:
Percentage routed to the first server,
Server1 = weight1 / (weight1+weight2+…+weightn)
Random
A cluster member could be picked randomly by the plug-in with this Random option. Session affinity can affect the load balancing options. As the session gets created at the first request, all other requests should be served by the same member. By analyzing the session identifier, the plug-in retrieves the application server that served the previous request.