Можно использовать программу захвата пакетов (фильтрующий для DNS) для отслеживания DNS query\response времена. Можно выполнить это на машине или на внутреннем сервере DNS (если у Вас есть один). Так как все вещи более или менее равны, это должно дать Вам общее представление о том, как быстро Google DNS сравнивается с Вашим ISP.
Вы можете просто dig
и grep
$ dig @8.8.8.8 www.rimuhosting.com | grep "Query time:"
;; Query time: 15 msec
$ dig @4.2.2.1 www.rimuhosting.com | grep "Query time:"
;; Query time: 289 msec
Используйте GRC's сравнительный тест скорости доменного имени .
Я сделал некоторые основные сравнительные тесты между OpenDNS и GoogleDNS. Результаты предполагают, что предложение OpenDNS последовательно быстрее, чем сервис DNS Google:
http://ajclark.wordpress.com/2009/12/04/google-dns-vs-opendns-performance-comparison/
плагин Firebug для Firefox и IE имеет "сетевую" вкладку, которая дает Вам графическое представление времени загрузки для каждого запроса файла.
Это разламывает его на действие включая поиски DNS, которые отображают зеленым.
Простой сценарий оболочки 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
dnseval
от работы dnsdiag как очарование на окнах Linux и Mac (намного лучше, чем устаревший namebench) загрузка на github
Для использования его сначала запишите текстовый файл, что каждый DNS Вы хотите к testcontains строку с ее адресом 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
, В то время как это не осматривает тот размер кэша серверов, это - намного более легкий и более быстрый подход, и я ожидаю, что это будет коррелировать хорошо с производительностью реального мира.
Можно использовать ping для выяснения, сколько времени он взял бы, чтобы пакет двинулся вперед-назад между сервером и серверами DNS. Как правило: никогда не изменяйтесь что работы.
недостаток А к OpenDNS - то, что домены, которые не существуют, могут ответить записью, указывающей на страницу результатов поиска OpenDNS, поскольку они имеют тенденцию делать это. Google в настоящее время не делает этого, но было бы глупо предположить, что они просто предоставляют сопоставителям DNS ничего для получения от него.