答案1
http://code.google.com/p/namebench/
它会将包括 Google 在内的几个公共 DNS 服务器与您当前的 DNS 服务器进行比较。
答案2
还有GRC 的 DNS 基准。虽然它看起来只适用于 Windows(网页声称 Linux/WINE 也可以运行)。
答案3
当您使用通过 Akamai 等 CDN 网络分发内容的服务(如 iTunes 或 YouTube)时,使用 Google DNS(或 OpenDNS)可能会对某些 ISP 产生负面影响。
我的理解是,CDN 将付费与 ISP 网络对等或共置,并通过暗光纤连接将流量从 ISP 网络路由到 CDN,从而避免互联网拥塞并提高性能。美国在线传输数据网络就是为 Road Runner 有线电视用户提供此类服务的一个例子。
在我看来,使用 Google DNS 仅在以下情况下才有意义:
- 如果你的 ISP 很糟糕,DNS 性能也很差
- 你不下载大量媒体或观看网络视频
- 您是一位笔记本电脑用户,发现自己身处各种随机网络。咖啡店里 50 个人共用一台 WRT-54G,可能会对路由器上的缓存 DNS 服务器造成严重影响。
对我来说,纽约州北部时代华纳分公司运行着一个相当不错的网络,所以我使用 ISP DNS。我认为 ISP DNS 无论如何都会得到改善,因为计算机的速度越来越快,而通常执行诸如服务 DNS 之类的实用工作的破旧机器被吸收到 VMWare 集群中。
以下是使用 Google DNS 和 ISP DNS 观看 YouTube 视频的比较:
Google DNS
$ ping v16.lscache2.c.youtube.com
PING v16.lscache2.l.google.com (209.85.239.38): 56 data bytes
64 bytes from 209.85.239.38: icmp_seq=0 ttl=47 time=54.822 ms
64 bytes from 209.85.239.38: icmp_seq=1 ttl=47 time=59.130 ms
64 bytes from 209.85.239.38: icmp_seq=2 ttl=47 time=56.981 ms
...
64 bytes from 209.85.239.38: icmp_seq=30 ttl=47 time=64.127 ms
^C
--- 209.85.239.38 ping statistics ---
31 packets transmitted, 31 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.596/69.145/104.663/13.599 ms
互联网服务提供商域名系统
$ ping v16.lscache2.c.youtube.com
PING v16.lscache2.l.google.com (74.125.0.38): 56 data bytes
64 bytes from 74.125.0.38: icmp_seq=0 ttl=54 time=37.129 ms
64 bytes from 74.125.0.38: icmp_seq=1 ttl=54 time=26.411 ms
64 bytes from 74.125.0.38: icmp_seq=2 ttl=54 time=21.199 ms
...
64 bytes from 74.125.0.38: icmp_seq=29 ttl=54 time=25.591 ms
64 bytes from 74.125.0.38: icmp_seq=30 ttl=54 time=20.021 ms
^C
--- v16.lscache2.l.google.com ping statistics ---
31 packets transmitted, 31 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 18.686/24.215/37.129/4.080 ms
重要提示:这绝不是一个科学测试——其他现象可能会导致不同的 DNS 结果。
答案4
Google 公共 DNS(8.8.8.8 或 8.8.4.4)的响应时间相对稳定。使用 dig 实用程序,您可以输入以下内容自行检查:
dig @8.8.8.8 www.serverfault.com
最后,你会得到类似这样的结果:
;; Query time: 67 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Feb 19 09:07:15 2010
;; MSG SIZE rcvd: 246
再次使用 dig 运行 dig 命令可能会稍微加快响应速度:
;; Query time: 37 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Feb 19 09:07:15 2010
;; MSG SIZE rcvd: 246
这是因为大多数 DNS 服务器都会缓存其必须到外部查找的服务器的查找。热门网站可能已经在缓存中。后续查找来自缓存,从而提高性能。
使用 Google 的公共 DNS 时,完整查找和缓存查找之间的差异并不大。但是,如果您运行的是自己的(不太繁忙的)缓存 DNS 服务器,则可以看到显著的差异。
如果您查找缓存中没有的网站,则初始查询时间可能会长达数百毫秒。但是,一旦网站进入缓存,查找时间可能接近零 (0) 毫秒。
初始查询:
dig @Your.DNS.Server.IP www.serverfault.com
最后得到以下结果:
;; Query time: 184 msec
;; SERVER: Your.DNS.Server.IP#x53(Your.DNS.Server.IP)
;; WHEN: Fri Feb 19 09:14:19 2010
;; MSG SIZE rcvd: 217
后续查询:
dig @Your.DNS.Server.IP www.serverfault.com
最后得到以下结果:
;; Query time: 0 msec
;; SERVER: Your.DNS.Server.IP#x53(Your.DNS.Server.IP)
;; WHEN: Fri Feb 19 09:14:19 2010
;; MSG SIZE rcvd: 217
只要 www.serverfault.com 查找不会超出本地 DNS 服务器的名称解析缓存,这个接近于零(如果不是零)的查询时间就会持续。
这些数字会随着时间的推移而增加。使用您的 DNS 查找地址的初始时间可能比使用 Google Public DNS 的初始时间长得多。但是,后续查找(只要它们保留在缓存中)可能会快得多。另一方面,Google Public DNS 似乎始终在约 30 毫秒到 60 毫秒的范围内(根据我们的位置,在非科学测试中)。
您必须自己权衡利弊。
现在,有趣的是,当我测试这个时,我实际上无法从我的网络访问 Google 公共 DNS 服务器。我不确定为什么,我正在调查。幸运的是,我们使用自己的服务器,并没有有效地离线。如果我在这个位置并且只依赖 Google 公共 DNS 服务器,我将遇到严重的连接问题,直到问题得到解决。所以,也要权衡外部依赖性。