จะวัดประสิทธิภาพแคชรายการ DNS ได้อย่างไร


16

ฉันได้กำหนดค่าdnsmasqเป็นเซิร์ฟเวอร์ DNS สำหรับแคชเท่านั้นบนเซิร์ฟเวอร์ Debian และทำงานได้ดี (ฉันเห็นเวลาตอบสนอง DNS ที่ปรับปรุงแล้วผ่านการขุด)

อย่างไรก็ตามฉันต้องการที่จะเข้าใจสิ่งที่dnsmasqแคชได้ตลอดเวลาเพื่อให้ฉันสามารถเริ่มคิดเกี่ยวกับประสิทธิภาพ (เช่นอัตราการเข้าชม) ที่ฉันบรรลุ

ฉันได้ดูหน้าคนและเว็บและไม่สามารถหาวิธีที่ฉันเห็นสิ่งที่dnsmasqแคช ณ จุดใด ๆ (ไม่เหมือนที่คุณสามารถทำได้สำหรับสัญญาเช่าตัวอย่างซึ่งถูกเก็บไว้ในไฟล์ dnsmasq.lease)

เป็นdnsmasqแคช DNS ที่จัดขึ้นในหน่วยความจำเท่านั้น? หรือฉันต้องทำไฟล์บันทึกบางรายการ

คำตอบ:


22

ฉันไม่มีสิทธิ์เข้าถึงdnsmasqแต่อ้างอิงจากหัวข้อนี้: dnsmasq แคชหรือไม่ คุณสามารถส่งสัญญาณ USR1 ไปยังdnsmasqกระบวนการทำให้การถ่ายโอนข้อมูลสถิติไปยังบันทึกของระบบ

$ sudo pkill -USR1 dnsmasq

จากนั้นศึกษาบันทึกของระบบ:

$ sudo tail /var/log/syslog
Jan 21 13:37:57 dnsmasq[29469]: time 1232566677
Jan 21 13:37:57 dnsmasq[29469]: cache size 150, 0/475 cache insertions re-used unexpired cache entries.
Jan 21 13:37:57 dnsmasq[29469]: queries forwarded 392, queries answered locally 16
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.222.222#53: queries sent 206, retried or failed 12
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.220.220#53: queries sent 210, retried or failed 6

หมายเหตุ:ฉันเชื่อว่าdnsmasqเก็บแคชไว้ใน RAM

ดังนั้นหากคุณต้องการทิ้งแคชคุณจะต้องเปิดใช้งาน-qสวิตช์เมื่อdnsmasqมีการเรียกใช้ สิ่งนี้ถูกกล่าวถึงในdnsmasqman page:

   -d, --no-daemon
        Debug mode: don't fork to the background, don't write a pid file, 
        don't change user id, generate a complete cache dump  on
        receipt on SIGUSR1, log to stderr as well as syslog, don't fork new 
        processes to handle TCP queries. Note that this option is for use in 
        debugging only, to stop dnsmasq daemonising in production, use -k.

   -q, --log-queries
        Log the results of DNS queries handled by dnsmasq. Enable a full 
        cache dump on receipt of SIGUSR1.

1
ขอขอบคุณที่ดูเหมือนว่าจะทำงานและสร้างผลลัพธ์คล้ายกับ: 20 ต.ค. 08:39:17 dnsmasq [4846]: เวลา 1413790757 20 ต.ค. 08:39:17 dnsmasq [4846]: ขนาดแคช 4096, 0/59976 การแทรกแคชอีกครั้ง ใช้รายการแคชที่ยังไม่หมดอายุ 20 ต.ค. 08:39:17 dnsmasq [4846]: คำค้นหาถูกส่งต่อ 13376 คำตอบที่ได้รับภายใน 1326 ดังนั้นฉันเดาว่าผลรวมของรายการแคชที่นิยมคือ: 1326/14702 ซึ่งประมาณ 9% ยิ่งฉันปล่อยให้มันใช้งานได้นานเท่าไหร่และยิ่งเว็บไซต์ที่ฉันเข้าชมมากเท่าไหร่ฉันเดาว่ามันอาจคืบคลานขึ้น
binaryfrost

เมื่อวันที่ OpenWRT logread | tailตามการใช้เราเตอร์
Brian

1
@binaryfrost ความคิดใด ๆ เกี่ยวกับการใช้หน่วยความจำต่อที่อยู่แคช DNS หรือไม่ สมมติว่าถ้าฉันมีขนาดแคช 500,000 จะบันทึกเต็มจำนวนหน่วยความจำที่คาดว่าจะใช้?
satch_boogie

ระบบที่ใช้ systemd ไม่มี / var / log / syslog และฉันไม่พบรายการใด ๆ สำหรับ dnsmasq หลังจากออก SIGUSR1 ในjournalctlเอาต์พุต มีวิธีระบุอย่างชัดเจนว่า dnsmasq ควรทิ้งการบันทึกหรือไม่
Sergiy Kolodyazhnyy

2

อีกวิธีในการรับข้อมูลนี้จาก man page:

สถิติแคชยังมีอยู่ใน DNS เป็นคำตอบสำหรับการสอบถามของคลาส CHAOS และพิมพ์ TXT ในการผูกโดเมน ชื่อโดเมนคือ cachesize.bind, insertions.bind, evictions.bind, miss.bind, hits.bind, auth.bind และ servers.bind ตัวอย่างคำสั่งเพื่อสอบถามสิ่งนี้โดยใช้ยูทิลิตี้การขุดจะเป็น

   dig +short chaos txt cachesize.bind
   dig +short chaos txt hits.bind
   dig +short chaos txt misses.bind

หากคุณมีบางอย่างเช่น systemd-resol บนระบบของคุณคุณจะต้องสอบถามเซิร์ฟเวอร์โดยตรงด้วย:

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