Load
balancing is the even distribution of computer processing and
communication activities so that a server is not overwhelmed. Load
balancing is especially important for networks where it is difficult to
predict the number of requests that will be issued to a server.
Let Rackspace make the difference with reliable managed hosting solutions backed by Fanatical Support.™ 100% Network Uptime Money-Back Guar., 1-hour hardware replacement, 24/7 LIVE, MS and LNX certified technical support.
|
|
Busy
Web sites typically employ two or more Web servers in a load-balancing
scheme. If one server starts to get swamped, requests are forwarded to
another server with more capacity. Load balancing is therefore a
service that is employed on more sophisticated site deployments.
Most
service providers that offer managed hosting will provide load
balancing services to their clients if they experience constantly heavy
traffic on their Web sites. Multiplexing traffic amongst several
servers permits better site availability. Load balancing therefore
distributes traffic efficiently among network servers so that no
individual server is overburdened.
In the
early days of the technology, many load balancing solutions where
implemented through customized domain name server configurations. This
approach called “DNS round robin,” rotated incoming requests from Web
browsers to multiple Web servers. The result was that all requests to
the particular Web site were evenly distributed among all of the
machines in the cluster.
The
advantage of this system was that it was inexpensive, as a system
administrator only needed to make a few changes in order to implement
it. Its major disadvantages however was that DNS round robin did not
support server affinity or high availability.
Server
affinity is a load-balancing system's ability to manage a user's
requests, either to a specific server or any server, depending on
whether session information is maintained on the server or at an
underlying, database level. Without server affinity, DNS round robin
could not by itself exercise control over incoming traffic without the
aid of cookies, hidden fields or URL rewriting.
Due to
its very nature of not being able to exercise this type of control, DNS
round robin could not natively handle browser caching, since incoming
requests were randomized. DNS round robin also had tremendous
difficulties dealing with high availability, since the DNS system
requires a large amount of time of propagate information and cache it
throughout the network. As a result, DNS round robin is a more
antiquated approach toward managing server load. Load balancing,
however, is much more sophisticated today, because it is mainly
implemented through appliances such as smart switches.
Hardware
load balancers solve many of the problems faced by the round robin
software solution through virtual server addressing. A load balancer
shows a single, virtual server address to the outside world, which maps
to the addresses of each server within the cluster. When a request
comes to the load balancer, it rewrites the request's header to point
to other machines in the cluster. If a machine is removed from the
cluster, the request does not run the risk of hitting a dead server,
since all of the machines in the cluster appear to have the same IP
address. This address remains the same even if a node in the cluster is
down. Moreover, cached DNS entries around the Internet are not a
problem. When a response is returned, the client sees it coming from
the hardware load balancer machine. In other words, the client is
dealing with a single machine, the hardware load balancer.
Because
one machine is dealing with the management of an entire cluster, server
affinity and high availability is actually integrated into the hardware
load balancer solution. Indeed, with the hardware solution, a service
provider can offer fail-over services, cluster management, traffic
routing and geographic load balancing across multiple sites and points
of presence.
Hardware
also is a much faster traffic routing solution because it is
solid-state device that more efficiently processes requests than
software on a server deployment can.