Google Public DNS vs OpenDNS vs Your ISP's DNS: Find out which is fastest(blog.browsermob.com)
blog.browsermob.com
Google Public DNS vs OpenDNS vs Your ISP's DNS: Find out which is fastest
http://blog.browsermob.com/2009/12/google-public-dns-vs-opendns-vs-your-isps-dns-measuring-performance/
11 comments
OpenDNS does return NXDOMAIN for random names - just not by default. Here's one simple test on my Nexenta box:
~$ 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.This is very broken default behavior. It has real security problems (it violates an assumption of the same-origin policy that scopes your browser cookies), it disrupts email, it breaks any application that needs NXDOMAIN (whether you know it does or not), and it's part of an arms race to fuck up^H^H^H^H^H^H "monetize" the infrastructure.
Google doesn't redirect NXDOMAINs. That's worth several milliseconds of response time for me.
Google doesn't redirect NXDOMAINs. That's worth several milliseconds of response time for me.
Also what about fiddling with the google search . . .
> 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.
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?
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?
NXDOMAIN = non-existent domain. In this case instead of the DNS server telling your resolver a given address doesn't resolve, it's telling it that they all resolve to OpenDNS's search service. There's a summary of some of the issues here: http://www.semicomplete.com/blog/geekery/comcast-dns-hijack-...
which is, all due respect, some bullsht right there.*
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.
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.
Nope, that's OK; I just set my DNS to 8.8.8.8 and got on with my life.
Nice! I wrote up the little Java tool so that those poor fellows who didn't have nice cmd line tools could still participate :)
There's nothing at all wrong with your test, it's just different from mine (to be perfectly honest, I didn't even read yours closely at first; I just wanted to bust out nsping).
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.
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.
You can also just use namebench (http://code.google.com/p/namebench/): It hunts down the fastest DNS servers available for your computer by running a 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 and runs on Mac OS X, Windows, and UNIX, and is available with a graphical user interface as well as a command-line interface.
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.
But I am wondering if this is really the thing to test: Unfortunately, this is extremely difficult, if not impossible, for us to independently test. It is a bit like looking for your lost car keys under the lamppost even though you lost them down the alley. We measured what we could measure, but that isn't what Google says is better.
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.
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.
For several years now, one of many common things I do for my client networks as well as friends/family has been to put them onto OpenDNS. They have been speedy, stable and FREE from the beginning during a time when you had to pay for most 3rd party DNS services. They also offer amazing controls like easy content blocking for free compared to hardware devices that charge good money to do the same for business networks.
Google's Public DNS is painfully slow for me. I have no idea what it is, but when I tried switching DNS servers last night I couldn't load anything within a reasonable time. For fun, I started a request in Safari with Google's servers, and let it sit for a few seconds. Then I switched to OpenDNS servers mid-request and it loaded instantly. I'm sticking with OpenDNS for the time being.
It's not too bad for us in Portland, OR but that's why we wanted to make the tool available for everyone. Hoping to get some good results that we can share next week. My guess: it's great for some folks and terrible for others (as it is in your case).
Yeah. What's strange is that I'm getting really good ping times of ~40 ms as an average. So strange. Oh well, I'm happy with OpenDNS (which is bearable once the OpenDNS guide is disabled).
Here are the results from more than 25 countries http://www.manu-j.com/blog/opendns-alternative-google-dns-ro...
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
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
This is similar to what I found. It is still faster to use my local DJB dnscache than any of the ISP DNS servers. And Google DNS was slower than the rest.
I did notice that level3 and OpenDNS seem to cache better -- they get considerably faster on the 2nd request.
I did notice that level3 and OpenDNS seem to cache better -- they get considerably faster on the 2nd request.
I always picked my DNS from http://www.dnsserverlist.org/indexbeta.php?oby=Q_RTT
And my observation is Google DNS ie 8.8.8.8 & 8.8.4.4 are better suited for non-USA users.
And my observation is Google DNS ie 8.8.8.8 & 8.8.4.4 are better suited for non-USA users.
[deleted]
How is this supposed to produce any sensible result, since their testing servers are in vastly different locations than anyone's desktop? Their testing server can't even REACH the caching resolver running on my home gateway, and even if it could, it would be many more network hops away from it than my PC is.
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)
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)
With random labels under amazon.com:
OpenDNS:
Google:
AT&T, via my home router:
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:
Google:
AT&T:
In case you're interested, compared to running dnscache on my local host, which is what I do normally:
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.