Server Cluster Load Balancing


Nowadays, Internet enters the lives of more and more people around the world. They use it in the office and at home, in their business, for education, entertainment and even for shopping. As the number and variety of available services increase, the public expectations of their quality increase too. Now users are not willing to wait for the result of their requests. Instead they go to another site or Service Provider.

There are two ways to meet the ever-increasing demand for Internet server performance.

The Classical Solution

The first way is the single server solution in which you upgrade the server to a higher performance one. There is the problem that soon this server can be overloaded again and a next upgrade will be required. The whole process of upgrading is complex, time consuming and expensive.

The Modern Approach

The other way of solving the problem is to use a cluster of servers serving clients with one and the same service using synchronized contents. When the requests for the Internet service increase you simply add new servers to the cluster to meet the increased traffic.

The multi-server solution requires incoming traffic to be distributed (loadbalanced) among the individual servers.

One method for loadbalancing is the Round-Robin DNS method. This method maps a single name to the different IP address of the cluster server in a round-robin manner. This way different clients should be mapped to different servers from the cluster distributing the workload among the servers. In practice, because of the caching nature of clients and the hierarchical DNS system this method easily leads to dynamic load imbalance among the servers. Some servers can be overloaded while others have resource to handle additional traffic. Another drawback of this method is that if a server fails, the clients who are directed to that server will not be served and the problem will exist even if they try to reconnect.

The better traffic management solution is to use a loadbalancer to distribute traffic among cluster servers. The combined service provided by the cluster servers (real servers) appears as a virtual service on a single IP address to end-users. The traffic is distributed on per connection rather then per user basis, which allows better load distribution among the real servers. If one of the real servers fails, the loadbalancer can take traffic away from it, until the server recovers this way providing end users with uninterruptible service. Server management and administration is much more easy too, as servers can be transparently brought in or taken out of the cluster for upgrade or maintenance.

The loadbalancer solution also provides enhanced scalability of the virtual server as the number of servers in the cluster can go up to 100.

SysMaster features multiple loadbalancing algorithms. Different loadbalancing techniques can be applied to server clusters that enable network administrators to choose a configuration that best meets their needs:

Static Algorithms

Round-Robin Algorithm
The Round-Robin loadbalancing algorithm redirects the network connections to the different server in a round-robin manner. It treats all real servers as equal regardless of number of connections or response time. This algorithm is suitable when the real servers of the cluster have equal processing capabilities. Otherwise some servers may receive more connections than they can process while others will use just a part of their resources.

Weighted Round-Robin Algorithm
The Weighted Round-Robin scheduling takes into account the different processing capabilities of each server. Network managers assign a performance weight to each server and a scheduling sequence in automatically generated according to the server weight. The network connections are directed to the different real servers according to the scheduling sequence in a round-robin manner.

Using this method, the servers capable of processing connections faster receive the largest number of connections.

The weighted round-robin does loadbalancing on the basis of a static algorithm as the actual number of active connections for each server is not taken into account. This way more real servers can be managed simultaneously. However, if the load of the connections vary highly, most of the long-time connections may concentrate on a real server leading to load imbalance among the cluster servers.

Dynamic Algorithms

Least-Connection Algorithm
Redirects a connection to the server with the least number of open connections. This is a dynamic balancing algorithm, because it counts open connections for each server dynamically. This algorithm is suitable for a server cluster where all the servers are with similar performance and the load of requests varies a lot.

Weighted Least-Connection Algorithm
The weighted least-connection algorithm is an extension of the least-connection technique, in which administrators can assign a performance weight to each real server. The servers with a higher weight value will receive a larger part of the incoming connections at any one time.
Network administrators should take into account that the weighted least connection algorithm requires an additional division when the real server for each new connection is selected. That is why, the number of the real servers that can be managed simultaneously by SysMaster is reduced a little compared to the other algorithms.

Optimized Weighted Round Robin: This mode is similar with the Weighted Round Robin algorithm with the addition that each server can be dynamically assigned a weight depending on its current availability and current load. This is achieved thanks to the mechanism by which SysMaster intelligently measures the load of every server in the server array which it manages.

Optimized Weighted Least Connections: This mode is similar again to the Weighted Round Robin algorithm but all weights are calculated dynamically to represent the current responsiveness of the servers in the managed server array. Both Optimized Weighted Round Robin and Optimized Weighted Least Connection models are developed to closely follow and balance the deviations of the load of each server as to achieve maximum efficiency and speed from the server array as a whole.
top of page

©2004 SysMaster Corporation. All rights reserved.