Answers:
使用GRC的域名速度基准测试。
我还看了namebench -Google的开源DNS基准实用程序。非常全面。
我已经完成了OpenDNS和GoogleDNS之间的一些基本基准测试。结果表明,OpenDNS产品始终比Google的DNS服务更快:
http://ajclark.wordpress.com/2009/12/04/google-dns-vs-opendns-performance-comparison/
简单的shell脚本qtest.sh可以用于:
%qtest -n3“ A a.gtld-servers.net” 172.19.1.1 62.4.16.70 62.4.17.69 208.67.222.222 208.67.220.220 156.154.70.1 156.154.71.1 3 172.19.1.1/172.19.1.1 49 62.4.17.69/62.4.17.69 61 208.67.222.222/208.67.222.222
在这里,172.19.1.1
本地解析器更快,其次是ISP解析器,然后是OpenDNS。
我写了一些不错的脚本来评估与DNS服务器的连接:
cat >test_dns_list_speed.sh
#!/usr/bin/env ksh
site="www.google.com"
IPfile="$1"
samples=$2
if [ ! -f "$IPfile" ] || ! echo "$samples"|egrep -q "[0-9]+" ; then
echo "test_dns_list_speed.sh <file-ip-list> <samples>"
echo "<file-ip-list> newline separated list of DNS server IP adresses"
echo "<samples> how many DNS resolution samples to take"
echo "PURPOSE:"
echo " collect statistics about response times from list of DNS servers"
exit 1
fi
typeset -i i
while [ $i -lt $samples ]; do
i=$i+1
for IP in `cat $IPfile`; do
time=`dig @$IP $site| awk '/Query time:/ {print " "$4}'`
IPtrans=`echo $IP|tr \. _`
eval `echo result$IPtrans=\"\\$result$IPtrans$time\"`
done
done
for IP in `cat $IPfile`; do
IPtrans=`echo $IP|tr \. _`
printf "%-15s " "$IP"; echo -e `eval "echo \\$result$IPtrans"`|tr ' ' "\n"|awk '/.+/ {rt=$1; rec=rec+1; total=total+rt; if (minn>rt || minn==0) {minn=rt}; if (maxx<rt) {maxx=rt}; }
END{ if (rec==0) {ave=0} else {ave=total/rec}; printf "average %5i min %5i max %5i ms %2i responses\n", ave,minn,maxx,rec}'
done
./test_dns_list_speed server_list 20
202.93.142.10 average 949 min 523 max 2229 ms 20 responses
202.93.142.20 average 897 min 515 max 2017 ms 20 responses
208.67.222.222 average 1235 min 530 max 3362 ms 20 responses
8.8.8.8 average 759 min 529 max 1624 ms 20 responses
您可以使用ping来计算数据包在服务器和DNS服务器之间来回移动需要多长时间。一般规则:永远不要改变有效的方法。
OpenDNS的缺点是不存在的域可能会以指向OpenDNS搜索页面的A记录作为响应,因为它们倾向于这样做。Google目前还没有这样做,但是假设他们只是向DNS解析器提供任何好处,这是愚蠢的。
dnseval
来自dnsdiag的软件在Windows linux和mac上就像一个魅力。(比过时的namebench好得多)在github上下载
要使用它,请首先编写一个文本文件,每个要测试的DNS都包含一行其IP地址
mylist.txt
:
8.8.8.8
192.168.178.1
然后运行
./dnseval -f mylist.txt yahoo.com # latency for cached sites
./dnseval -m -f mylist.txt yahoo.com # latency for sites not in cache
尽管这不会检查服务器的缓存大小,但它是一种更容易,更快捷的方法,我希望它与实际性能紧密相关。