Improve BIND performance

Jim Reid jim at rfc1035.com
Thu Mar 24 14:15:25 UTC 2005


>>>>> "Joe" == Joe Shen <sj_hznm at yahoo.com.cn> writes:

    Joe> Hi, is there any recommendation on improving BIND performance?

Sure, but how do you define "performance": CPU/memory/bandwidth usage?
throughput? latency?

    Joe> We use BIND as cache server which provide DNS service to our
    Joe> subscribers. We noticed its load increase continuously with
    Joe> time. As we installed BIND with default configuration, it is
    Joe> thought there should be possibility to improve its
    Joe> performance by tuneing server parameters. Now comes my
    Joe> questions:

    Joe> 1) Is there any recommendation for BIND installation? 

This is a bit like asking someone what sort of car they should buy. The
answers depend on what it's going to be used for. Are you running a
cacheing server or an authoritative server or both? Do you need ACLs
and/or views? Are you using threading (on a multi-processor)?

    Joe> we use solaris 9 ( SPARC) with 2GB memory, the disk swap operation
    Joe> should be a part of reason for BIND performance; So, can I
    Joe> configure BIND to hold all cached RR in memory?

Your hardware platform is a good choice for a big, busy name server.
By default, BIND caches everything in memory so you've nothing to do
there. Except of course to make sure the OS lets the name server use
as much RAM as it needs. It might not be a good idea to run another
memory-hungry application on this box. Though that'll depend on how
much of the 2Gb is available and how much the applications need.

    Joe> 2) Is there any recommendation for OS parameter tuneing to
    Joe> improve BIND performance?

It's unlikely anything is written down. How the OS can be tuned to
improve BIND performance depends on what you mean by "performance".
As a general rule, all you have to do is make sure the OS lets BIND
use as much RAM as it needs. It might be worthwhile tweaking some of
the parameters in the kernel's TCP/IP stack -- eg UDP socket queue
lengths -- on name servers that get a sustained high load of recursive
queries.

To get more specific help, I think you need to start by defining the
scope of the problem: what you mean by performance and what appears to
be unsatisfactory with your current setup.

    Joe> 3) Is there any software to monitor concurrent requestes,
    Joe> successful rate, memroy utilization, CPU load of each server?
    Joe> I SNMP could track some paramter, but what about BIND's
    Joe> concurrent requests & successful rate?

Statistics gathering and reporting in BIND9 are fairly crude. Feel
free to contribute code. [Somebody's just posted a patch for 9.3.1 to
bind-workers.] Or you could join the BIND Forum and work with ISC to
improve these features. Some of the stuff you want to monitor can be
captured by tools like MRTG and RRDtool. A google search for DNS
monitoring gets ~1M hits. Some of them might well meet your needs. :-)
BTW, the MIB for DNS was deprecated a while ago and no significant DNS
implementation ever supported it.



More information about the bind-users mailing list