DNS performance benchmarking by Google

on December 12, 2009 in Linux with 2 comments by

Today I came across namebench by Google, a DNS (domain name system) benchmarking tool and gave it a try.  To my surprise, namebench determined that a DNS server owned by BT and located in the UK was faster than my own or my provider’s DNS servers, both of which are located in France.

In fact, this is the damning message that namebench gave me:

namebench 1.0.5 - data/alexa-top-10000-global.txt (weighted) on 2009-12-12 09:15:57.450225
threads=40 tests=200 runs=1 timeout=2.0 health_timeout=4.0 servers=10
------------------------------------------------------------------------------

... (snip!) ...

********************************************************************************
In this test, BT-70 GB is 274.4% faster than your current primary DNS server
********************************************************************************

Yikes!

Follwing is a chart generated by the data generated by namebench (click on it to enlarge). My primary DNS server is represented by SYS-10.10.24.4 (cyan) and secondary by SYS-10.10.31.1. (yellow). My service provider is SYS-213.186.33.9 (purple):

Namebench Chart

Namebench Chart

The primary server is accessible internally only, powered by BIND9 in a typical split DNS setup. It provides the local names of internal servers (which may be different from public names) and it will cache responses for external servers (like www.google.com) through the upstream server, which are the DNS servers owned by my service provider.

As this and the chart below will show, the response times of my service provider’s DNS serer are rather poor. This directly correlates to a poor performance on my own primary DNS server:

Mean Response Times

Mean Response Times

My secondary DNS server, powered by PowerDNS, is publicly accessible. However, on the public side it will only answer requests directly related to servers I own. Internally, it will also do this and cache responses for other external servers I do not own. The upstream DNS server is OpenDNS.

In the first namebench chart you can see how well my secondary DNS server is performing. But strangely enough, BT’s “BT-70” DNS server is providing an even better performance, particularly in response times as shown in the second chart. Because of this, namebench came to this final conclusion:

Recommended configuration (fastest + nearest):
----------------------------------------------
nameserver 62.6.40.162     # BT-70 GB
nameserver 10.10.24.4      # SYS-10.10.24.4
nameserver 10.10.31.1      # SYS-10.10.31.1  NXDOMAIN Hijacking

In other words, I should move my current primary and secondary servers a position down, and use BT’s DNS server as the primary instead. (A note the “NXDOMAIN Hijacking”, which is explained here, I do not practice in this behaviour!)

Despite the fact I was unaware of the overall poor quality of my provider’s DNS servers until now, I will actually keep the primary and secondary servers in their current position. Instead I will be replacing the primary upstream DNS server with OpenDNS (which is currently the case for my secondary server) or with BT’s “BT-70”. This will depend on its uptime of BT-70, comparing it to OpenDNS’ uptime of 99.98% according to my own monitors.

In all, I must say that the new namebench tool is an instant hit. It even picked up on two errors that I can now correct. All the previous “DNS checkers” I have used, commercial or free, failed to pick up on these. Excellent!

2 comments

  1. posted on Dec 13, 2009 at 8:40 PM  |  reply

    Namebench also reported my local server as being very slow. Even when I ran it with every query result pre-cached. I am not sure how accurate it is…

    • posted on Dec 14, 2009 at 11:37 PM  |  reply

      I’ve just posted another blog after I’ve updated the upstream DNS server. Once again, it shows the local servers being slower in the mean response times. Can’t figure out why and I’ll ask the Google devs.

Join the discussion

Your email address will not be published. Required fields are marked *