Load balancing is the distribution of a workload across many nodes. In the webhosting industry, it is typically used for balancing http traffic over multiple servers acting together as a web front-end. For the sake of this article, we will focus on the balancing of HTTP and HTTPS traffic through a Zeus Load Balancer.
A Load Balancer allows users to intelligently distribute traffic to a single IP across any number of servers using a number of different protocols. This means that the processing load can be shared across many nodes, rather than being limited to a single server increasing performance during times of high activity. It increases the reliability of your web application and allows you to build your application with redundancy in mind. If one of your server nodes fails, the traffic is programmatically distributed to your other nodes without any interruption of service.
Why and When to use Load Balancing
Load balancing, by its very nature, is the solution for more than one problem. You can use load balancing to keep your site up through traffic spikes, or grow with you as your site gains popularity.
The two most common uses for Load Balancing:
- Limiting your points of failure Failover and redundancy:
By limiting your available points of failure, you increase your uptime. If you load balance between two or more identical nodes, in the event that one of the nodes in your cluster experiences any kind of hardware or software failure the traffic can be redistributed to the other nodes keeping your site up. If you are extremely concerned with uptime, load balancing between two identical nodes that can independently handle the traffic to your site allows for failure in either one, without taking your site down.
- Load Distribution. Growing beyond a single server configuration:
As your site gains popularity you will outgrow the power of even the most robust servers, and require something stronger than a single server configuration. Upgrading from a single server, to a dual server configuration (1 Web server, 1 Database server) configuration will only allow for so much growth. The next step is to combine the power of multiple servers with Load Balancing.
Methods of Load Balancing
There are different ways to balance your traffic, with Zeus. Each of them comes with advantages and drawbacks.
With the round robin method of load balancing, the load balancer will send traffic to each node in succession. This method will evenly distribute the traffic, but does not take into account the current load or responsiveness of the nodes.
This method of balancing the traffic takes into account the current number of open connections between the load balancer and the server, and sends the traffic to the server with the lowest number of active connections. This method is more intelligent, but also does not consider the current load or responsiveness of the nodes.
Historical Intelligence or the Perceptive Algorithm
This method decides which node to send the traffic to using both the current number of open connections between the load balancer and the server, and the response times of the nodes. The biggest difference to this method is that Zeus ramps up the traffic to servers newly added to the pool gradually. This can be a problem if you need to add power quickly, but can be beneficial if you have a server that is experiencing problems keeping up with its inbound traffic.
Choosing the best method for you.
For most sites the most appropriate choice in load balancing algorithms is Historical Intelligence or the Perceptive Algorithm. The only time that would not be true is if your site is extremely light in processing and memory, and keeping historical data would be more than your site needed. Liquid Web has both Zeus and Cisco load balancing options available. Take a look, and if you have any questions about what is best for you, give us a call.
Liquid Web’s Heroic Support is always available to assist customers with this or any other issue. If you need our assistance please contact us:
Toll Free 1.800.580.4985
Tagged with: apache • command line • httpd_conf • linux • load balancing • server • ssh • tutorial • zeus