Node:Load balancing, Next:in-addr.arpa, Previous:Round robin, Up:Server
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.