Round Robin DNS Load Distribution
From XpertDNS
If you serve a very popular site, you will eventually find the limit at which your server simply can't serve any more requests. While upgrading hardware will help in the short term, you may eventually find that a single machine can't possibly perform the work that needs to be done.
One way to overcome the limits of the monolithic server is to distribute the load across many machines. By adding a second (or third) server to the available pool of machines, you can not only increase performance but also add to the stability of the network. If you have a hot spare (or three) running all of the time, then if one develops trouble, the others can take over for it without any downtime.
Perhaps the easiest way to distribute the load of public traffic is to have the public do the work of distributing the load for you. Through the magic of round-robin DNS, inbound requests to a single host name can be directed to come from any number of IP addresses.
On XpertDNS this is as easy as adding multiple A records for a single host.
domain.com A 10.10.10.11 domain.com A 10.10.10.12
Now, when a hosts looks up domain.com in DNS, about half of the time they will see:
root@localhost:~$ host domain.com domain.com has address 10.10.10.12 domain.com has address 10.10.10.11
and the rest of the time, they get:
root@localhost:~$ host domain.com domain.com has address 10.10.10.11 domain.com has address 10.10.10.12
As most applications only use the first address returned by DNS, this works rather nicely. Approximately half of the requests will go to each address, and therefore the load of two servers should be roughly half of that of a single server. We set the TTL low (to 60 seconds) to prevent any intervening caching DNS servers from hanging onto one sort order for too long, which will hopefully help keep the number of requests to each host more or less equal.
It is only useful to spread out the load if all of the servers are in agreement about what they're serving. If your data gets out of sync, then browsers might get one version of a web page on the first hit and another when they hit reload. If you're looking for a way to keep that from happening, take a look at this article.
Advance Round Robin DNS
Other considerations
The DNS based load balancing method shown above does not take care of various potential issues such as unavailable servers (if one server goes down), or DNS caching by other nameservers. The DNS server does not have any knowledge of the server availability and will continue to point to an unavailable server. It can only differentiate by IP address, but not by server port. The IP address can also be cached by other nameservers, hence requests may not be sent to the load balancing DNS server.
Considering the functionality, the round robin DNS is not a load balancing mechanism but a load distribution option. Some of these drawbacks can be overcome by implementing our Advance Round Robin DNS feature. This is only available for A records and works by querying an IP address on port 80 for that domain name. It the server gets a 200 OK response we know the web server is online. If the server does not receive this response then the records is temporarely removed from DNS. Once the server is back online the domain name will automatically be added back into production. We check for changes every 15 minutes and your will receive an email advising you of the change.

