Google Public DNS vs OpenDNS vs Your ISP's DNS: Find out which is fastest
blog.browsermob.com
blog.browsermob.com
With random labels under amazon.com:
OpenDNS:
[4:55pm:~] DIVISION:tqbf [0:1]% nsping -z amazon.com 208.67.222.222
NSPING 208.67.222.222 (208.67.222.222): Domain = "amazon.com", Type = "IN A"
+ [ 0 ] 55 bytes from 208.67.222.222: 29.254 ms [ 0.000 san-avg ]
...
+ [ 35 ] 55 bytes from 208.67.222.222: 28.894 ms [ 43.104 san-avg ]
^C
Total Sent: [ 36 ] Total Received: [ 35 ] Missed: [ 1 ] Lagged [ 0 ]
Ave/Max/Min: 43.104 / 232.379 / 24.222
Google: [4:56pm:~] DIVISION:tqbf [0:1]% nsping -z amazon.com 8.8.8.8
NSPING 8.8.8.8 (8.8.8.8): Domain = "amazon.com", Type = "IN A"
- [ 0 ] 100 bytes from 8.8.8.8: 71.366 ms [ 0.000 san-avg ]
...
- [ 27 ] 99 bytes from 8.8.8.8: 61.967 ms [ 86.705 san-avg ]
^C
Total Sent: [ 29 ] Total Received: [ 27 ] Missed: [ 2 ] Lagged [ 0 ]
Ave/Max/Min: 86.705 / 223.928 / 48.951
AT&T, via my home router: [4:57pm:~] DIVISION:tqbf [0:2]% nsping -h www.amazon.com 192.168.1.254
NSPING 192.168.1.254 (192.168.1.254): Hostname = "www.amazon.com", Type = "IN A"
+ [ 0 ] 48 bytes from 192.168.1.254: 48.595 ms [ 0.000 san-avg ]
...
+ [ 20 ] 48 bytes from 192.168.1.254: 34.261 ms [ 36.207 san-avg ]
^C
Total Sent: [ 21 ] Total Received: [ 20 ] Missed: [ 1 ] Lagged [ 0 ]
Ave/Max/Min: 36.207 / 59.454 / 30.943
But, note the + in front of the OpenDNS result, which means we didn't get NXDOMAINs for random names, which is, all due respect, some bullsh*t right there. The results just for "www.amazon.com", which read straight from the cache and don't measure the performance of the recursive fetch:OpenDNS:
Total Sent: [ 21 ] Total Received: [ 19 ] Missed: [ 2 ] Lagged [ 1 ]
Ave/Max/Min: 25.740 / 65.835 / 22.402
Google: Total Sent: [ 21 ] Total Received: [ 19 ] Missed: [ 2 ] Lagged [ 0 ]
Ave/Max/Min: 36.985 / 64.553 / 33.540
AT&T: Total Sent: [ 21 ] Total Received: [ 20 ] Missed: [ 1 ] Lagged [ 0 ]
Ave/Max/Min: 36.207 / 59.454 / 30.943
In case you're interested, compared to running dnscache on my local host, which is what I do normally: Total Sent: [ 14 ] Total Received: [ 13 ] Missed: [ 1 ] Lagged [ 0 ]
Ave/Max/Min: 55.592 / 220.798 / 36.061
Third parties are faster, for obvious reasons (they have much better network connections, and using them minimizes roundtrips over my crappy network).You can run these tests for yourself trivially. Just install nsping. I'm fond of it, despite how horribly coded it is.
By querying 1000 popular sites, you're really just testing the network and software performance of the three servers. Every one of those names is guaranteed to be in their cache. By randomizing the labels, you can factor the cache out of the benchmark. Does this matter much? Meh.
I agree with your performance conclusion (your ISP is fastest) with two caveats:
* AT&T's DNS sucks ass; it's fast right now, because it sucks and wants to screw up my benchmark, but 10 minutes from now it's going to go back to being nonresponsive. I'll happily surrender 50ms for consistant performance.
* The major win for third-party DNS (and the same win for running your own local cache) isn't performance; it's that it always Just Works.
No matter what Google says about 100ms responsiveness differences decreasing user engagement by 20%, I don't believe that 10-15ms is noticeable.
~$ nslookup - 208.67.222.222
> aorckhaosreckh.com
Server: 208.67.222.222
Address: 208.67.222.222#53
** server can't find aorckhaosreckh.com: NXDOMAIN
OpenDNS is configurable - by default it does a search, which I believe is part of how it funds itself.Google doesn't redirect NXDOMAINs. That's worth several milliseconds of response time for me.
So turn that off if you're running us on a server.
Most of our users are consumers and don't mind (or even prefer) that experience.
Let me know if you need help doing that.
Would you care to explain that remark to people like me who don't know the ins and outs of DNS? What's an NXDOMAIN? And why is it bullshit?
End result: you're farther away from the resolver, farther away from your web pages, farther away from your CDN. I don't see how you can make a case that this is an improvement in general.
Namebench is completely free and does not modify your system in any way. This project began as a 20% project at Google and runs on Mac OS X, Windows, and UNIX, and is available with a graphical user interface as well as a command-line interface.
Also, this does not test proper standard behavior, which is the response to a non-existing domain. And the fact that OpenDNS seems to do something goofy when you search google for things.
Not 1000's of domains names though. But if you see the results, they are pretty consistent most of time even for a small number of results
I did notice that level3 and OpenDNS seem to cache better -- they get considerably faster on the 2nd request.
And my observation is Google DNS ie 8.8.8.8 & 8.8.4.4 are better suited for non-USA users.
I realise running bind or djbdns' dnscche is not for everyone. However, even your ISP's DNS server will be much closer to you network wise and thus experience less latency. No one should ever use OpenDNS or Google DNS.
(reposted because comments from my old account are invisible)