ฉันจะเปรียบเทียบประสิทธิภาพของการค้นหา DNS ภายนอกได้อย่างไร


14

ฉันกำลังพิจารณาเซิร์ฟเวอร์ DNS สาธารณะของ Google เป็น DNS ภายนอกสำหรับเครือข่ายของฉัน ขณะนี้ฉันกำลังใช้เซิร์ฟเวอร์ DNS จาก ISP ของฉัน ฉันเคยพิจารณา OpenDNS มาก่อน แต่ท้ายที่สุดก็ตัดสินใจที่จะไม่กระโดด

ฉันต้องการที่จะสามารถเปรียบเทียบว่าเซิร์ฟเวอร์ที่เกี่ยวข้องนั้นสามารถให้บริการคำขอ DNS ของเราได้อย่างรวดเร็วเพียงใด ฉันไม่เห็นสิ่งใดใน nslookup ที่จะช่วยได้

ฉันจะทดสอบเวลาไปกลับสำหรับ DNS ที่ระบุจากภายนอกได้อย่างไร

คำตอบ:


5

คุณสามารถใช้โปรแกรมจับแพ็คเก็ต (การกรองสำหรับ DNS) เพื่อติดตาม DNS query \ response ครั้ง คุณสามารถรันสิ่งนี้บนเครื่องของคุณหรือบนเซิร์ฟเวอร์ DNS ภายในของคุณ (ถ้าคุณมี) ทุกสิ่งเท่ากันมากขึ้นหรือน้อยลงคุณควรทราบว่า Google DNS เปรียบเทียบกับ ISP ของคุณได้เร็วเพียงใด


5
ตัวแยก DNS ของ Wireshark ทำการร้องขอ / ติดตามการตอบสนอง สามารถใช้ตัวกรองการแสดงผล "dns.time" เพื่อค้นหาเวลาตอบสนอง
เจอรัลด์รวงผึ้ง

40

คุณสามารถทำได้ง่าย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

13

ใช้ GRC ของเกณฑ์มาตรฐานชื่อโดเมนความเร็ว


ฉันตรวจสอบเครื่องมือนี้ ... มันสั่นคลอน!
Mike L

2
ฉันลองใช้เกณฑ์มาตรฐานของ GRC หลังจากเปิดใช้เนมของกูเกิล Google กล่าวว่าเป็นของตัวเอง 8.8.4.4 เร็วกว่าคนอื่น 21.1% อย่างไรก็ตามรายการที่กำหนดเองของ GRC พร้อมการเพิ่ม 8.8.4.4 แสดงให้เห็นว่า google เป็นหนึ่งในช้าที่สุดและเร็วกว่า DNS ปัจจุบันของฉันโดย Comcast เร็วที่สุดมาจากการสื่อสารระดับ 3 ฉันไว้วางใจเกณฑ์มาตรฐาน DNS ของ GRC มากกว่า Google ในตอนนี้ และ GRC's นั้นเขียนขึ้นในชุดประกอบและเรียกใช้จากไฟล์ขนาด 184k ไฟล์เดียว ที่น่าประทับใจ!
Brian Boatright

ระวัง GRC ถ้าคุณไม่ได้อยู่ในสหรัฐอเมริกา ดูเหมือนว่าจะไม่ทดสอบเซิร์ฟเวอร์โฮสต์ที่ไม่ใช่ของสหรัฐอเมริกา
NickG

3

ฉันยังได้ดูnamebench - ยูทิลิตี้การทดสอบ DNS แบบเปิดแหล่งที่มาของ Google มันครอบคลุมมาก


ลิงก์หมดอายุ :-(
Pol Hallen

รุ่นของ namebench ที่เชื่อมโยงกับ (v1.3) นั้นค่อนข้างเก่าแล้ว มีพื้นที่เก็บข้อมูลที่อัปเดต (v2) บน GitHub: github.com/google/namebenchซึ่งรองรับ DNSSEC, การเปรียบเทียบมาตรฐาน CDN และอื่น ๆ
Patrick

2

ฉันได้ทำการวัดประสิทธิภาพพื้นฐานระหว่าง OpenDNS และ GoogleDNS แล้ว ผลลัพธ์แนะนำว่าข้อเสนอ OpenDNS นั้นเร็วกว่าบริการ DNS ของ Google อย่างสม่ำเสมอ:

http://ajclark.wordpress.com/2009/12/04/google-dns-vs-opendns-performance-comparison/


2

ปลั๊กอิน Firebugสำหรับ Firefox และ IE มีแท็บ "net" ที่ให้การแสดงผลกราฟิกของเวลาในการโหลดสำหรับการร้องขอไฟล์ทุกไฟล์

มันแบ่งออกเป็นกิจกรรมรวมถึงการค้นหา DNS ซึ่งจะแสดงเป็นสีเขียว


2

เชลล์สคริปต์แบบง่าย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


2

ฉันเขียนสคริปต์ที่ดีเล็กน้อยเพื่อประเมินการเชื่อมต่อกับเซิร์ฟเวอร์ 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

1

คุณสามารถใช้ ping เพื่อคำนวณระยะเวลาที่แพ็กเก็ตใช้เพื่อเลื่อนไปมาระหว่างเซิร์ฟเวอร์ของคุณกับเซิร์ฟเวอร์ DNS ตามกฎทั่วไป: อย่าเปลี่ยนสิ่งที่ใช้งานได้

ข้อเสียของ OpenDNS คือโดเมนที่ไม่มีอยู่อาจตอบกลับด้วยระเบียน A ที่ชี้ไปยังหน้าค้นหาของ OpenDNS เนื่องจากมีแนวโน้มที่จะทำเช่นนั้น ขณะนี้ Google ไม่ได้ทำ แต่มันจะโง่ถ้าสมมติว่าพวกเขาเพียงแค่ให้บริการตัวแก้ไข DNS โดยไม่ได้รับอะไรเลย


ถ้าฉันสามารถแบ่งคำตอบฉันจะมี ฉันชอบการทดสอบ ping เพราะมันง่าย ฉันปล่อยให้มันวิ่งไปหาพวกมันทั้งหมดแล้วดูค่าเฉลี่ย ที่นี่ฉันต้องการดูเวลาตอบสนองของแบบสอบถามเองนอกเหนือจากการเดินทางไปรอบ ๆ แพ็กเก็ตดังนั้นฉันจึงเลือกใช้การจับแพ็คเก็ต ทำงานได้มากขึ้นในการตั้งค่าและทดสอบ แต่ต้องการประสิทธิภาพที่แท้จริงของเซิร์ฟเวอร์ภายนอก ขอบคุณ!
Mike L

1
ความคิดที่ดีที่จะใช้ ping เซิร์ฟเวอร์บางตัวไม่ตอบสนองต่อการ ping และไม่มีการรับประกันว่าเวลาตอบสนองจะเหมือนกันกับ DNS และ ICMP
bortzmeyer

0

dnsevalจากdnsdiagทำงานเหมือนมีเสน่ห์บน windows linux และ mac (ดีกว่าเนมที่สร้างชื่อล้าสมัย) ดาวน์โหลดบน 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

แม้ว่านี่จะไม่ตรวจสอบขนาดแคชของเซิร์ฟเวอร์ แต่มันก็เป็นวิธีที่ง่ายกว่าและเร็วกว่ามากและฉันคาดว่ามันจะมีความสัมพันธ์ที่ดีกับประสิทธิภาพในโลกแห่งความเป็นจริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.