Node:Load balancing, Next:, Previous:Round robin, Up:Server



Load balancing

If your rr table contains more than one address record for the same name, and one or more of the records has an aux value greater than zero, MyDNS will weight its response using the value in aux.

The value of aux may be 0 through 10. Values above 10 are silently clamped down to 10. MyDNS uses this value to determine which address record to list first, which will be the address a client is most likely to use when attempting to contact the device with the name requested. The rest of the values are returned in random order.

A low value in aux makes an address record more likely to be listed first. An address record with an aux value of 10 will never be listed first. The balancing algorithm causes servers with a lower aux to be selected much more frequently than those with higher values.

Here's an example of how the requests were distributed on a 10,000-query test against 11 hosts, 0-10:

aux 0    27.54%
aux 1    20.52%
aux 2    14.47%
aux 3    11.62%
aux 4     8.04%
aux 5     5.08%
aux 6     4.16%
aux 7     3.34%
aux 8     2.81%
aux 9     2.42%
aux 10    0.00%

The reason for the somewhat backwards scheme here, with 0 being the most heavily weighted, and 10 (and above) never being selected at all, is that almost any indication of server load is going to be on a scale where 0 means "no load". One way to use load balancing is to run a program that periodically updates the aux value for a machine to reflect the current load average, or bandwidth use, or something - adjusted, of course, for a 0-9 scale, or 10 if the machine is slashdotted.