bind 9 performance

Eivind Olsen eivind at
Wed Jun 15 21:48:03 UTC 2011

hugo hugoo wrote:

> Is there anything I have to look at to check that all is OK in terms of
> performances when I will be in BIND9?

Well, you haven't really given any information about your current setup
and usage, so I have no idea if you're trying to run a million-user ISP
with DNS on an old Intel 486 processor with 8MB RAM :-)

In general, if you want good performance, generally without really having
to tune your operating system etc, the easy answer is: make sure BIND has
enough physical memory available for its cache, and run it on a system
with 4 CPU cores available (BIND9 doesn't really seem to scale much past 4

If you're really concerned about performance: run benchmarks. Two
interesting things to measure are number of queries per second, and
response time/latency. Keep in mind what you're measuring as well - if you
query from the same server and ask for information avaialble in the cache,
you're just doing a local test. A real life query might very well make
your nameserver ask several external servers, which takes time no matter
what you do.

External factors can and will impact your benchmarking. Know what you're
actually benchmarking.
One example: I was doing some benchmarking a while ago, and was confused
as to why I could only get something like 3500 responses per second from a
server when I asked it to give some >3Kbyte answers back - which was
actually a very nice number, considering I did the testing on a 100Mbps
network link and managed to fill it to just over 97% of maximum
theoretical limit.

Please provide more information if you want a more accurate answer.

1) Which role does your BIND server have? Authoritative server only?
Recursive server only? Mix of both?

2) Is it a plain setup, or do you do anything fancy, like feeding BIND
from a database backend?

3) Please describe the server you're running BIND on. Is it single-core
CPU or multi-core? How much physical memory does it have? Does it
basically just run BIND, or does BIND have to compete with "a ton" of
other services for resources?

4) What kind of use does your nameserver see? Number of users? Queries per
second? If you don't know - dump statistics during prime time for your
users and check - you should ideally be able to extract some statistics
from BIND8 by running "ndc stats" and then looking into named.stats
wherever your nameserver has its working directory. If you found the file
- wait a while, run the command again to dump another set of statistics -
you should now have some numbers available in that file and can now
calculate how many queries you have per second on average.

Eivind Olsen

More information about the bind-users mailing list