DNS server caching performance test results.

Kevin Darcy kcd at daimlerchrysler.com
Sat May 19 00:30:55 UTC 2001


Matt Simerson wrote:

> > -----Original Message-----
> > From: Brad Knowles [mailto:brad.knowles at skynet.be]
> > Sent: Thursday, May 17, 2001 1:04 PM
> > To: Matt Simerson; 'bind-users at isc.org'
> > Subject: RE: DNS server caching performance test results.
> >
> > At 11:59 AM -0600 5/17/01, Matt Simerson wrote:
> >
> >       Forwarding is evil, and should be avoided if at all possible.  It
> > just doesn't work the way people expect it to, and it causes far too
> > many weirdnesses if/when it goes wrong.
>
> I'm going to have to amend your statement to read: "Forwarding with BIND is
> evil" because DNS forwarding is certainly not an evil thing to do.

I'm not sure why you'd single out BIND here. Forwarding is a technology, not a
BIND-specific feature. Is the forwarding mechanism implemented in other
DNS implementations somehow less evil than BIND's? How?

> In many
> networks it makes very good sense to have a cache hierarchy so that
> duplicate requests are handled within the LAN rather than having several
> hundred dns servers all querying the roots and the rest of the world.

We've thrashed this out numerous times before. Yes, if your external
connection is extremely slow/unreliable compared to your LAN or internal
backbone network, and if your nameserver farm is very fast/capacious, then you
*may* be able to squeeze out some query performance for *some* names *some* of
the time, using forwarding. But the performance gains are probably far more
modest than one might initially think. Consider that very-frequently-queried
names are going to be in cache almost all of the time everywhere anyway, and
very-infrequently-queried names will tend to be absent from cache and have to
be queried externally anyway, and you see that the performance gains can only
be realized for a very narrow "middle" band of queries that are queried
sort-of-kind-of frequently. Plus you start at a penalty anyway because of the
extra latency that forwarding adds.

And those are purely *performance-related* caveats to the use of forwarding.
I'm sure Jim and Brad can fill you in better than I on the manageability
and/or scalability problems of forwarding. Since I have avoided the use of
forwarding in Chrysler's DNS from the very start, I have only secondhand
knowledge of such matters -- most recently, reports of scalability problems
from my colleagues in Germany, who use forwarding extensively.

Overall, it seems that query performance is affected most significantly by the
strategic placement of caching servers. No query is faster than the one which
is answered out of a local cache. So it seems to me that the focus should be
on the *distribution* of caching capability, not the *centralization* of
caching capability in some whiz-bang nameserver farm located somewhere far
away from the clients who rely upon it.


- Kevin




More information about the bind-users mailing list