A better way to check DNS performance

Earlier in the week we posted about CloudFlare’s 1.1.1.1 DNS service. I had tested performance on a few common websites across a range of DNS servers. I had done these tests by hand. It was slow and painful. I thought there should be a better way.

But of course! There is a tool that does this. The tool is much more elegant than I am. The tools is much more thorough than I am. The tool is much more efficient than I am. The tool uses my Chrome browsing cache to get the answers. I did not use the tool before. I did now.

The tools is namebench, and it is released by Google. NameBench takes a list of DNS servers and allows you to test against them. It can use the servers you specify, or a range of Open and Geographically distributed servers. You can download a pre-compiled binary from the Google Code page for the project.

Screen Shot 2018-04-04 at 12.48.35 am.png

Best news? The results are consistent with what I expected and observed from my manual test runs. The average resolution time is slower, but this is to be expected as the queries were run across a much larger number of web sites than previously.

Tested DNS Servers

This table shows the DNS servers we tested. All servers bar one timed out on one query across the 800 test URLs, which results in a MAX time reported for them of 3500.0ms (3.5 seconds).
Screen Shot 2018-04-04 at 12.42.48 am.png

 

What does this look like visually?

This is the average response time graphed for each of the servers:

mean_duration.png

Or, showing the percentage of queries addressed within the time scale:

response times.png

What can we conclude?

As we suggested in our original post, at least on a Real World NBN connection, the CloudFlare DNS servers still appear to be the fastest choice, followed very closely by the Real World DNS servers. Both options outperform the Google Public DNS service by a large margin.

Should I swap?

I didn’t. The difference between the Real World servers and the CloudFlare servers is negligible. But you might judge differently!

Help! I’m told my DNS results are incorrect or hijacked!

This is probably OK. In my case, I saw the following responses:

These addresses are from local content mirrors. It’s worth checking though.

Help! I’m running MacOS and I can’t see my test results!

Yes, this is a known issue with the very old builds that are currently available, and the test results do not automatically launch from the app in High Sierra and beyond.

Thanks to a comment from The Robservatory on their post about NameBench:

While the app still runs in High Sierra, you won’t see any output. However, thanks to commenter Marc K., you can still see the output once it’s done. Open Terminal and paste this command:

find /var/ -iname "namebench_*.html" 2>/dev/null | xargs open

This will open the results page in your browser—including the below-referenced eye candy—so you can compare the various DNS that were analyzed. Thanks Marc!

Leave a Reply