Load balancing

Revision as of 13:58, 18 August 2005 by Wensong (Talk | contribs) (DNS Load Balancing)

Jump to: navigation, search

In computing, load balancing is a technique used to spread work load among many processes, computers, networks, disks or other resources, so that no single resource is overloaded.

Load balancing can be also considered as distributing items into buckets:

  • data to memory locations
  • files to disks
  • tasks to processors
  • packets to network interfaces
  • requests to servers

Its goal is even distribution.

Network Load Balancing

Layer-2 Load Balancing

The layer-2 load balancing, also known as link aggregation or trunking, is to bond two or more links into a single, higher-bandwidth logical link. Aggregated links also provide redundancy and fault tolerance if each of the aggregated links follows a different physical path. Link aggregation may be used to improve access to public networks by aggregating modem links or digital lines. Link aggregation may also be used in the enterprise network to build multigigabit backbone links between Gigabit Ethernet switches.

The Linux kernel has the Linux bonding driver, which can aggregate multiple links for higher throughput or fault tolerance.

Layer-3 Load Balancing

Layer-4 Load Balancing

Layer-7 Load Balancing

DNS Load Balancing

DNS load balancing is to distribute requests to different servers though resolving the domain name to different IP addresses of servers. When a DNS request comes to the DNS server to resolve the domain name, it gives out one of the server IP addresses based on scheduling strategies, such as simple round-robin scheduling or geographical scheduling. This redirects the request to one of the servers in a server group. Once the domain is resolved to one of the servers in specified time-to-live, subsequent requests from the clients using the same local caching DNS server are sent to the same server.

More information is on the DNS Load Balancing page.

Computing Load Balancing

Database Load Balancing