Google namebench to find optimal nameservers

December 15, 2009 · By Stephen Reese

After checking name servers that I was using to resolve hosts on a network, using tools such as ping, traceroute, and dig I found Google has a new tool called namebench. There is support for several platforms including Linux and Microsoft Windows. I pulled down a Linux copy and fired up the python script. By default in CLI the tool tests the top 10000 Alexa sites, as a note the GUI tool can test sites from your browser's cache. The tool compares your DNS hosts to several top resolvers around the net including their own. This was neat but I found the real usefulness was the ability to only specify the name servers you want to test.

$ ./namebench.py -O 68.87.73.242 68.87.68.162 68.87.74.162 8.8.8.8 8.8.4.4 208.67.220.220
namebench 1.0.5 - data/alexa-top-10000-global.txt (weighted) on 2009-12-14 22:09:40.248541
threads=40 tests=200 runs=1 timeout=2.0 health_timeout=4.0 servers=10
------------------------------------------------------------------------------
- Checking connection quality...
- Connection appears healthy (latency 55.15ms)
- Building initial DNS cache for 6 nameservers [40 threads]
- Waiting for health check threads for 6 servers: 0/6.6/6
.- 6 of 6 name servers are healthy
- Waiting for wildcard check threads: 1/6.....6/6
.- Waiting 4s for TTLs to decrement.
- Waiting for cache collusion threads: 0/30.30/30
30
Final list of nameservers considered:
------------------------------------------------------------------------------
68.87.68.162 68.87.68.162 48 ms |
208.67.220.220 208.67.220.220 59 ms | www.google.com. hijacked (google.navigation.opendns.com.), NXDOMAIN Hijacking
68.87.73.242 68.87.73.242 62 ms |
68.87.74.162 68.87.74.162 78 ms |
8.8.8.8 8.8.8.8 86 ms |
8.8.4.4 8.8.4.4 88 ms | - Reading test data from data/alexa-top-10000-global.txt
- Benchmarking 6 server(s), run 1 of 1: 1/200.........10.........20.........30.........40.........50.........60.........70.........80.........90.........100.........110.........120.........130.........140.........150.........160.........170.........180.........190.........200/200
200
- Rendering template: ascii.tmpl
- Saving rendered ascii output
Fastest individual response (in milliseconds):
----------------------------------------------
68.87.68.162 ############################ 32.37295
68.87.73.242 ################################# 38.33604
208.67.220.220 ################################# 39.38794
68.87.74.162 ########################################## 49.34692
8.8.4.4 ##################################################### 63.43389
8.8.8.8 ##################################################### 63.49301 Mean response (in milliseconds):
--------------------------------
8.8.4.4 ########################## 67.35
68.87.73.242 ################################## 90.54
8.8.8.8 #################################### 95.24
68.87.68.162 #################################### 95.31
208.67.220.220 ######################################### 108.85
68.87.74.162 ##################################################### 142.74 Response Distribution Chart URL (200ms):
----------------------------------------
http://chart.apis.google.com/chart?cht=lxy&chs=720x410&chxt=x,y&chg=10,20&chxr=0,0,200|1,0,100&chd=t:0,20,20,20,21,21,21,24,27,49,59,67,116|0,1,12,40,57,63,69,73,77,80,84,87,91|0,16,17,17,18,19,25,26,29,35,39,51,77,95,102|0,1,14,28,48,53,56,60,65,69,72,76,80,83,87|0,19,20,20,20,21,21,23,24,26,36,56,69,90,112|0,1,8,30,45,50,54,61,64,70,73,77,80,84,87|0,25,25,25,26,27,45,46,49,51,57,71,77,91,116|0,1,5,33,39,47,50,54,58,62,65,69,73,77,80|0,32,32,32,33,33,34,34,35,38,48,53|0,1,7,28,55,65,80,88,91,95,98,100|0,32,32,32,33,33,34,34,34,37,41,50,63,78,126|0,1,7,28,44,54,66,70,74,77,81,85,89,92,96&chco=ff9900,1a00ff,80ff00,ff00e6,00e6ff,fae30a&chxt=x,y,x,y&chxl=2:||Duration+in+ms||3:||%25|&chdl=208.67.220.220|68.87.68.162|68.87.73.242|68.87.74.162|8.8.4.4|8.8.8.8 Response Distribution Chart URL (Full):
---------------------------------------
http://chart.apis.google.com/chart?cht=lxy&chs=720x410&chxt=x,y&chg=10,20&chxr=0,0,1333|1,0,100&chd=t:0,3,3,3,3,3,3,4,4,7,9,10,17,23,62,100|0,1,12,40,57,63,69,73,77,80,84,87,91,94,98,100|0,2,2,3,3,3,4,4,4,5,6,8,12,14,15,19,22,24,60|0,1,14,28,48,53,56,60,65,69,72,76,80,83,87,90,94,97,100|0,3,3,3,3,3,3,3,4,4,5,8,10,13,17,20,23,25,32|0,1,8,30,45,50,54,61,64,70,73,77,80,84,87,91,94,98,100|0,4,4,4,4,4,7,7,7,8,9,11,11,14,17,19,22,25,28,45,67|0,1,5,33,39,47,50,54,58,62,65,69,73,77,80,84,88,91,95,98,100|0,5,5,5,5,5,5,5,5,6,7,8|0,1,7,28,55,65,80,88,91,95,98,100|0,5,5,5,5,5,5,5,5,6,6,8,9,12,19,55,69|0,1,7,28,44,54,66,70,74,77,81,85,89,92,96,99,100&chco=ff9900,1a00ff,80ff00,ff00e6,00e6ff,fae30a&chxt=x,y,x,y&chxl=2:||Duration+in+ms||3:||%25|&chdl=208.67.220.220|68.87.68.162|68.87.73.242|68.87.74.162|8.8.4.4|8.8.8.8 Recommended configuration (fastest + nearest):
----------------------------------------------
nameserver 8.8.4.4 # 8.8.4.4
nameserver 68.87.68.162 # 68.87.68.162
nameserver 68.87.73.242 # 68.87.73.242