Computer networks are complex systems, often routing hundreds, thousands, or even millions of data packets every second. Therefore, in order for networks to handle large amounts of data, it is important that the data is routed efficiently. For example, if there are ten routers within a network and two of them are doing 95% of the work, the network is not running very efficiently. The network would run much faster if each router was handling about 10% of the traffic. Likewise, if a website gets thousands of hits every second, it is more efficient to split the traffic between multiple Web servers than to rely on a single server to handle the full load.
Load balancing helps make networks more efficient. It distributes the processing and traffic evenly across a network, making sure no single device is overwhelmed. Web servers, as in the example above, often use load balancing to evenly split the traffic load among several different servers. This allows them to use the available bandwidth more effectively, and therefore provides faster access to the websites they host.
Whether load balancing is done on a local network or a large Web server, it requires hardware or software that divides incoming traffic among the available servers. Networks that receive high amounts of traffic may even have one or more servers dedicated to balancing the load among the other servers and devices in the network. These servers are often called (not surprisingly) load balancers.
Clusters, or mulitple computers that work together, also use load balancing to spread out processing jobs among the available systems.