#StandWithUkraine

Test and choose DNS server that performs best for you

From time to time I’ve been getting slow responses and even occasional errors, when opening some new site for the first time. By these symptoms it is likely to be an issue with domain name resolution.

Today I looked up some tools in my bookmarks and decided to test provider’s DNS servers against third party ones.

What DNS does

Any computer (personal or server either) connected to modern network has an IP address. Set of numbers that identifies it. Humans on other hand prefer to operate with host and domain names.

DNS server is essential part of network that tells your software what IP address it should query for name you requested.

What are options

Traditionally DNS used is run by your Internet provider. After all without one it wouldn’t be much of internet connection to sell.

  • pro it is likely to be nearby and fast;
  • con not much… as long as it works properly.

There are also some major third party DNS servers from long-standing OpenDNS to released last year Google Public DNS. They try to provide better performance and additional features.

  • pro might perform better, can offer protection from malware, filtering options and more;
  • con in fact might be slower because it is farther.

So it is practical to test and see which variant fits your connection better.

Namebench

App is open source tool for testing DNS servers. It takes your current DNS server plus optionally popular third party servers and/or servers in close geographical proximity. Domains to test can be taken from browser history or from list of internet top domains.

namebench_interface

Namebench works without installation (self-unpacks to system temporary folder and runs from there). When done (took it ~15 minutes to finish) it generates combined report in HTML with conclusion on best-performing server, test data and two extensive plots with results distribution.

Home&download http://code.google.com/p/namebench/

DNS Benchmark

Another app for very same purpose. This one tests with less domain data (only 50 top domains) but tries more DNS servers.

dnsbenchmark_interface

It includes plenty of explanations in interface and provides advice on DNS configuration on top of test results. App is single-file and natively portable.

Home&download https://www.grc.com/dns/benchmark.htm

Results

Namebench ranked my native DNS server low and came to conclusion that OpenDNS is 2.5 times faster, with much lower average response time. In its test Google DNS also outperformed provider’s.

DNS Benchmark came to quite different conclusions. In its test OpenDNS and provder’s DNS came first neck to neck with almost identical results and Google performed slightly worse than both.

I changed primary DNS to OpenDNS in my wireless router and left secondary DNS set to provider’s. Will see if I notice difference in experience over time.

Overall

Because of strong DNS caching mechanisms both on server and client sides its performance is tricky metric to test definitively.

It might not be a good idea to jump on whatever tests tell you, but it is definitely good idea to test at least once and ensure that provider’s DNS is fast enough and works properly.

Related Posts

14 Comments

  • kingpin #

    Hey about DNS Jumper,care to give it try.New version is available but it's not working on win7 so try v1.02. Here the link: http://www.sordum.com/?p=2073 What do u think?
  • Rarst #

    @kingpin I saw the mentions around, but since my DNS settings are managed by router it is of little use.
  • Geek Squeaks’ of the Week (#47) « What's On My PC #

    [...] Rarst.net Test and choose DNS server that performs best for you [...]
  • Saurabh #

    I have been using OpenDNS for a long time and will continue using it for its security features but I was a little surprised to find my ISP DNS server much faster than OpenDNS , Google dns and the others. Looks like the big guys don't see any point in setting servers near our region (India).
  • Rarst #

    @Saurabh Guess most of these are US-based... Even if they have servers spread it's not always easy to determine precise location and best server fit for specific location.
  • Golden Code #

    Hi! Google has very easy to remember DNS IP addresses: 8.8.8.8 and 8.8.4.4. It's very helpful when your DNS suddenly stops working:)
  • Rarst #

    @Golden Code Good point! :) Can indeed come handy if DNS suddenly bites the dust but connection itself works. On other hand there are two fields for DNS for exactly this reason - so you can input different servers from the start. PS Google just likes to show off, aren't they :)
  • Vincent Chow #

    I'm coming back to this article several times via Google (keyword: rarst check dns), all just because I couldn't locate it on my computer and I don't remember its name. Damn.
  • Rarst #

    @Vincent Good we have Google for that. :)
  • Find The Fastest DNS Server & Change Easily #

    [...] claims to speed up your internet experience and improve security—so which to choose?Rarst suggested two tools to test which DNS server has the best performance for you, namely namebench and DNS [...]
  • Nime #

    @echo off REM //NSLOOKUP batch check utility v1.0 REM //Author: Emin Akbulut eminakbulut@gmail.com REM //Date: 03 June 2010 REM //This code is freeware REM //Usage: Modify the DNS and host lists below, at line 23, then simply run the batch file. SET timeout=5 IF "%1" == "/check" GOTO loopit :start cls if exist %0.log del %0.log > nul %2>nul if exist %0.bat.log del %0.bat.log > nul %2>nul echo --------------------------------------- echo Starting... %date% %time:~0,8% echo --------------------------------------- echo Report created on %date% %time:~0,8% >> %0.log REM %%A for DNS Servers list, %%B for target hosts to be checked FOR %%A IN (195.175.39.39 195.175.39.40 8.8.8.8) DO FOR %%B IN (google.com yourdomain.com mail.yourdomain.com) DO CALL %0 /check %%A %%B echo --------------------------------------- >> %0.log echo --------------------------------------- echo Done. Press any key to examine the log file... Pause > nul start notepad "%~0.log" GOTO done :loopit echo --------------------------------------- >> %0.log echo nslookup %3 %2 echo nslookup %3 %2 >> %0.log nslookup -timeout=%timeout% %3 %2 >> %0.log 2>nul :done
  • Rarst #

    @Nime Yay, command line scripts ftw. :) Saved to try later, thanks for sharing!
  • velociraptor #

    Dns jumper v1.0.3 was beta , but new version v1.0.4 working on windows 7 well and not beta (first stable release) Please try v1.0.4 http://www.sordum.com/?p=4573
  • Rarst #

    @velociraptor Thanks for update on this! I am (still) on router myself, but might be of use to others.