ajwebber / namebench

Automatically exported from code.google.com/p/namebench
Apache License 2.0
0 stars 0 forks source link

Are you a power-user with 5 minutes to spare? Do you want a faster internet experience?

Try out namebench. It hunts down the fastest DNS servers available for your computer to use. namebench runs a fair and thorough benchmark using your web browser history, tcpdump output, or standardized datasets in order to provide an individualized recommendation. namebench is completely free and does not modify your system in any way. This project began as a 20% project at Google.

namebench runs on Mac OS X, Windows, and UNIX, and is available with a graphical user interface as well as a command-line interface.

Requirements:

--[ quick use guide ]---------------------------------------------------------

namebench comes with two interfaces: a simple graphical interface, and a more advanced command-line interface. If you have downloaded the versions for Mac OS X and Windows, you will get the graphical interface by default.

Most people will simply want to run this software with no arguments:

./namebench.py

On UNIX, if you have python-tk installed, a graphical interface will pop up. If you would like to force use of the command-line, use -x:

./namebench.py -x

If you want to specify an additional set of name services, simply add the IP to the command-line, or edit namebench.cfg:

./namebench.py 10.0.0.1 192.168.0.1

--[ credit ]------------------------------------------------------------------

namebench includes some wonderful third party software:

For licensing information, see the LICENSE file within the appropriate subdirectory.

--[ options ]-----------------------------------------------------------------

Usage: namebench.py [options]

Options: -h, --help show this help message and exit -r RUN_COUNT, --runs=RUN_COUNT Number of test runs to perform on each nameserver. -z CONFIG, --config=CONFIG Config file to use. -o OUTPUT_FILE, --output=OUTPUT_FILE Filename to write output to -t TEMPLATE, --template=TEMPLATE Template to use for output generation (ascii, html, resolv.conf) -c CSV_FILE, --csv_output=CSV_FILE Filename to write query details to (CSV) -j HEALTH_THREAD_COUNT, --health_threads=HEALTH_THREAD_COUNT

of health check threads to use

-J BENCHMARK_THREAD_COUNT, --benchmark_threads=BENCHMARK_THREAD_COUNT

of benchmark threads to use

-P PING_TIMEOUT, --ping_timeout=PING_TIMEOUT

of seconds ping requests timeout in.

-y TIMEOUT, --timeout=TIMEOUT

of seconds general requests timeout in.

-Y HEALTH_TIMEOUT, --health_timeout=HEALTH_TIMEOUT health check timeout (in seconds) -i INPUT_SOURCE, --input=INPUT_SOURCE Import hostnames from an filename or application (alexa, cachehit, cachemiss, cachemix, camino, chrome, chromium, epiphany, firefox, flock, galeon, icab, internet_explorer, konqueror, midori, omniweb, opera, safari, seamonkey, squid, sunrise) -I, --invalidate_cache Force health cache to be invalidated -q QUERY_COUNT, --query_count=QUERY_COUNT Number of queries per run. -m SELECT_MODE, --select_mode=SELECT_MODE Selection algorithm to use (weighted, random, chunk) -s NUM_SERVERS, --num_servers=NUM_SERVERS Number of nameservers to include in test -S, --system_only Only test the currently configured system

--[ sample output ]-------------------------------------------------------------

namebench 1.3b1 - best history source (automatic) on 2010-05-27 08:34:46.585534 threads=40/2 queries=250 runs=1 timeout=3.5 health_timeout=3.75 servers=11

Final list of nameservers considered:

4.2.2.5 Genuity BAK 29 ms | 194.74.65.68 BT-6 GB 30 ms | 208.67.222.222 OpenDNS-2 31 ms | www.google.com is hijacked: google.navigation.opendns.com 195.99.66.220 EU BT AMS NL 34 ms | 156.154.71.1 UltraDNS-2 41 ms | NXDOMAIN Hijacking 193.74.208.65 Scarlet-0 BE 45 ms | 8.8.4.4 Google Public DNS- 54 ms | (excluded: Shares-cache with current primary DNS server) 8.8.8.8 Google Public DNS 57 ms | Replica of ::1, Replica of 10.0.0.1, Replica of 8.8.4.4 216.146.35.35 DynGuide 62 ms | NXDOMAIN Hijacking 82.146.118.12 Econoweb BE 63 ms | 212.71.8.11 EDPnet-2 BE-2 66 ms | 85.158.210.68 Benesol BE 82 ms |

Fastest individual response (in milliseconds):

Scarlet-0 BE ##################### 10.71286 Benesol BE ###################### 11.12390 EDPnet-2 BE-2 ###################### 11.39688 Econoweb BE ####################### 11.84607 OpenDNS-2 ############################ 14.16492 BT-6 GB ############################ 14.27984 Genuity BAK ############################ 14.33086 DynGuide ################################# 17.08102 EU BT AMS NL ################################### 17.74192 Google Public DN ######################################## 20.69783 UltraDNS-2 ###################################################### 27.56095

Mean response (in milliseconds):

Google Public DN ########## 62.97 BT-6 GB ################### 123.89 Scarlet-0 BE #################### 127.88 Genuity BAK ####################### 150.14 UltraDNS-2 ######################### 161.57 OpenDNS-2 ############################ 182.91 EU BT AMS NL ############################# 192.26 DynGuide ############################### 205.30 Benesol BE ############################### 206.70 EDPnet-2 BE-2 ################################## 227.69 Econoweb BE ##################################################### 355.61

Response Distribution Chart URL (200ms):

http://chart.apis.google.com/chart?cht=lxy&chs=720x415&chxt=x,y&chg=10,20&chxr=0,0,200|1,0,100...

Response Distribution Chart URL (Full):

http://chart.apis.google.com/chart?cht=lxy&chs=720x415&chxt=x,y&chg=10,20&chxr=0,0,3500|1,0,100...

Recommended configuration (fastest + nearest):

nameserver 8.8.8.8 # Google Public DNS
nameserver 193.74.208.65 # Scarlet-0 BE
nameserver 85.158.210.68 # Benesol BE


In this test, Your current primary DNS server is Fastest


--[ FAQ ]-----------------------------------------------------------------------

See http://code.google.com/p/namebench/wiki/FAQ for more recent updates.

1) What does 'NXDOMAIN Hijacking' mean?

This means that the specific DNS server returns a false entry when a non-existent record is requested. This entry likely points to a website serving a 'Host not found' page with banner ads.

2) What does 'www.google.com. may be hijacked' mean?

This means that when a user requests 'www.google.com', they are being silently redirected to another server. The page may look like it's run by Google, but it is instead being proxied through another server. For details, try using the host command. In this case, this particular IP server is redirecting all traffic to http://google.navigation.opendns.com/

% host www.google.com. 208.67.220.220 Using domain server: Name: 208.67.220.220 Address: 208.67.220.220#53 Aliases:

www.google.com is an alias for google.navigation.opendns.com. google.navigation.opendns.com has address 208.67.217.230 google.navigation.opendns.com has address 208.67.217.231

3) What does 'google.com. may be hijacked' mean?

The same as above, but it is a rarer condition as it breaks http://google.com/

4) What does 'thread.error: can't start new thread' mean?

It means you are using too many threads. Try restarting namebench.py with -j8

5) What does 'unhealthy: TestWwwGoogleComResponse <class 'dns.exception.Timeout'>' mean?

It means the specified nameserver was too slow to answer you. If all of your nameservers are timing out, try restarting namebench.py with -Y 4