Server load balancing is a technique (using load balancing hardware or programs) which seeks to distribute the work load in order to optimize IP-based queries from the Internet or Intranet throughout a server farm using various methods. The technique most commonly used is server clusters, especially high availability clusters.
After the initial set-up, the administrator can adapt these methods or scheduling rules to specific requirements. To think of it in more basic terms, server load balancing is like taking several individual servers and making them appear as one great big server. This is called clustering. In the most extreme cases, you can even have several clusters of servers and load balance across these separate clusters. You might see this on a site like YouTube.
Reasons for Load Balancing
There are many reasons a company would consider upgrading to a load balanced solution, but the most common reasons are scalability, high availability, and predictability. Consider a company with a website hosted on a dedicated server that is accessed thousands of times a day. Regardless of the company’s size, they need to be confident:
1. Scalability
Scalability is being able to handle sudden and/or gradual increases in traffic. As you grow your web presence, ideally, you will have more people visiting your site and viewing more pages or making more requests. If you have a single server, these increases may overwhelm the server and result in downtime. If you need to upgrade, you will experience similar downtime as you move to the new server. Server load balancing allows you to seamlessly scale your hardware as needed. Imagine you had a farm, and each year you plowed a bigger field or one year started a second field. If you have a one-horse plow, you could look to buy a younger, stronger horse or get a new plow, but youd need to take time away from farming to go find the right ones and buy them. Instead, you could simply add your other horse to the team to balance the extra work needed. Eventually you may need to have two teams of horse plows, but you can easily plan to scale up to that. The farm is like your web traffic, and the horses are like your servers. By adding a second server, you can balance the workload across both servers, and if needed, you can add a whole other cluster of servers - but you can easily plan to scale up to that, too.
2. High Availability
High availability is ensuring your site is available all the time, 24x7x365. With a single server, you may need to do maintenance or upgrade your harddrive or RAM. During that time, the site will need to be taken down, and customers might find their way to your competition. With server load balancing, you can upgrade or run maintenance on one server, and the additional requests are automatically sent to the rest of the servers in the cluster. Comparing this to our farm, if you have a one-horse team, your horse may get sick or need to be re-shoed meaning you cant plow your field. If you had a multi-horse team, the rest of the horses could work a bit harder to complete the plowing without anyone really noticing the difference.
3. Predictability
Predictability is providing a user a consistent experience each time they visit. You may have certain times of day that more people visit your site, or you may run a promotion or release a new service. This is similar to the Slashdot effect. With a single server, peak times may mean a
npainfully slow website or web application. Customers may get frustrated and leave. With multiple servers, these peaks are easily addressed by sharing the workload. Comparing this to our farm, in the summer, the horse may slow down or may not be able to work at all in the afternoon sun. With several horses working together, working in the heat isnt as big an issue because the workload is being shared by several horses.
Getting a more efficient server or improved network hardware alone will not meet all of these requirements, since it can only improve on the performance - this is like simply replacing your horse or your plow. To attain a high-level of availability with minimum downtime and fast access speeds, it is recommended to have two or more dedicated servers operating simultaneously. These mirrored servers must then be load balanced for automatic failover and detection of poor application performance in any of the online servers. If one mirror server fails, another mirror server takes over automatically. The server load balancer knows the extent of the load on the servers and can therefore direct queries in the most efficient and best possible way.
Different Methods for Server Load Balancing
There are a few methods for server load balancing and they are listed below.
NOTE: The method that you should use depends on your application and the types of servers that you have running.
The server load balancer supports:
The load balancer also supports popular applications such as:
For More Information