DNS servers are the most trusted component of your web browsing experience but few people understand how they work or how their security vulnerabilities can cause you problems. I recommend that you read both What DNS Servers Do and How to Change DNS Server before you change the DNS servers your system relies upon.
Three free utilities can help you to find the best DNS servers for your system.These benchmarking programs use their databases of DNS servers to test those that will give you the best improvement. The best performance is likely to be from from a mixture of DNS servers that are close to your location and a global DNS server that has a large database. These programs are portable (run without installation), use similar methods and provide similar results. Their reporting is very different so I recommend that you try both NameBench and DNS Benchmark.
I recommend DNS Benchmark for all users outside of North America. It clearly identifies one problem that NameBench does not. My primary DNS server had slow response times for major dot com sites which usually have their home in the United States.
There are two sections in this how to guide.
Installing the software
These programs run directly from the download and have no install procedure so they don't alter the Windows registry or add shortcuts to the desktop or menu.
How to copy the files to the folder you want to run them from
They also won't create their own folders to install to so if you want that you will have to do it yourself.
Download additional files as required
Namebench command line version requires Python 2.5 to 2.7 to be installed. UNIX and Mac OS X usually have it so it is mainly Windows users who might have to install it.
The average user can skip the rest of this section and go straight to testing.
Editing the configuration files before running the first test
The first test will be the most accurate because it is more likely that the tested domains will not be cached. Once the test has run then any further requests for the same domain are likely to be cached. Therefore some advanced users might want to edit the configuration files before running the first test.
Namebench has three configuration files in a subfolder (\namebench\config) of the folder you have unzipped it to:
DNS Benchmark has two configuration lists which do not exist when you first run DNS Benchmark. I created both lists from those tested in NameBench so that I can compare the results of the two programs.
I opened the NameBench .csv results in Excel, summarized the list of sites and DNS hosts using two pivot reports (there are other ways to do it), then copied the lists into the respective files:
dnsbench.exe /domains domains.txt
DNS Jumper has one configuration file:
In this section I explain how to test using a real example of my own.
Checklist before you start testing
1. Run NameBench and set the test options.
The NameBench options are explained as follows:
2. Run the benchmark
First, NameBench checks the connection quality and makes adjustments for the connection condition. That is why you should not have other Internet activity while running the tests.
NameBench then selects the fastest to benchmark:
The DNS queries are sent to the selected DNS servers.
The results are saved in html and csv formats.
Finally, the html results are displayed in the browser chosen for the test.
3. View the benchmark results.
Click on the images in this review to see the results of a full test that I ran
The primary report is a table.
There are two types of graph presented. The first are bar graphs of the average and fastest response times. Note that each graph uses a different scale.
Then there are line graphs of cumulative response times.
The online results include sample index results for Wikipedia.com and Google.com instead of presenting the second response distribution graph.
Finally, the benchmark parameters are listed.
1. Start DNS Benchmark
To view the DNS servers click on the Nameservers tab highlighted above. You will have to wait about 10 seconds for the list of servers to be loaded.
Your system DNS servers will appear first in the list. The remaining servers are sourced from DNS Benchmark's list of global servers. The advantage of this approach is that you have the opportunity to refine the server list before testing.
At this point you can add or remove servers by using either of two menus:
The servers can be added or removed individually or in three groups:
You can remove all servers to clear the list and start again. Once complete you can save your list to an .ini file.
There are two further options that you might consider to prune the list:
The final option is to build the custom server list without running the global benchmark. If you want to save time then do this and skip to Create the regional DNS server list.
2. Run the global server DNS benchmark
As well as clicking on "Run Benchmark", you can also click on the Gibson Research Corporation (GRC) logo to start or stop the benchmark.
At first glance the results point to a much faster DNS server. But the decision is not that clear cut if you read on below:
The main results display the results of cached queries. DNS Benchmark provides two particularly useful test results if you check the Show Uncached checkbox:
In the example below my primary DNS server has unacceptably slow response for major global websites (DotComs). This problem was not visible in the NameBench results.
The server that is reported to be fastest is one of my ISP's DNS servers. I should probably change to it because it is faster and has no problems with DotComs unlike my primary DNS server. However it does have a problem with lost queries as indicated by the red bar which displays over the server IP address on the left. It is not a big problem but I would test again to see if it is a regular problem.
The Custom Namerserver List is a list of your regional DNS servers that are likely to give you the best service. DNS Benchmark goes through its database of nearly 5,000 DNS servers to find those that are likely to perform best for you. It creates the list and then you can run the benchmark.
While it is creating the list you can see the total number of servers including the following:
4. Run the regional DNS server benchmark
The regional DNS server benchmark runs the same as the default server benchmark. So the results apply just the same.
5. View the results
DNS Benchmark displays the results as it works so you will quickly be able to see which DNS servers are performing the best. I've drawn a few conclusions from the final results displayed at right. Note that DNS Benchmark allowed me to save these results as an image file because a screenshot wouldn't show enough servers.
Query response time = network latency + server processing time
Remember that DNS Benchmark has several tabs to view the various results:
6. After completing the benchmark:
The DNS server list will be saved in the default.ini file. As discussed above, you can amend the list or detete it and start again.
To save the results go to DNS Benchmark's System Menu and select 'Export last results to CSV file'. DNS Benchmark also provides for saving any of the results pages either as an image file (.png or .bmp) or a formatted text file (.rtf).
Testing with DNS Jumper
DNS Jumper is relatively simple but I do not rate it highly so I''m only showing the main window for your information.
1. Select your network card.
2. Add or remove any DNS servers to the DNS Jumper database using the + or - buttons.
3. Find the "Fastest DNS"
4. If you want to use the fastest servers then select "Apply DNS" to save the change.
I found the results unreliable and would be reluctant to use them without a second opinion. But the program is a quick and easy introduction to selecting a global DNS services.