[unix] DNS 캐시 효율성 / 캐시 된 항목을 측정하는 방법은 무엇입니까?

dnsmasq데비안 서버에서 캐싱 전용 DNS 서버로 구성 했으며 제대로 작동합니다 (발굴을 통해 DNS 응답 시간이 향상되고 있음).

그러나 dnsmasq캐싱 이 무엇인지 한 번 에 알고 싶습니다 . 따라서 달성하는 효율성 (예 : 적중률)에 대해 생각하기 시작할 수 있습니다.

매뉴얼 페이지와 웹을 둘러 보았으며 dnsmasq(예를 들어 dnsmasq.lease 파일에 보관 된 임대를 위해 할 수있는 것과 달리) 캐싱이 무엇인지 어떻게 볼 수 없습니다 .

는 IS dnsmasqDNS 캐시는 메모리에? 아니면 로그 파일을 삭제해야합니까?



답변

액세스 할 수는 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 페이지 에서 언급됩니다 :

   -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.


답변

매뉴얼 페이지에서이 정보를 얻는 또 다른 방법 :

캐시 통계는 또한 도메인 바인드에서 클래스 CHAOS 및 TXT 유형의 쿼리에 대한 응답으로 DNS에서 사용 가능합니다. 도메인 이름은 cachesize.bind, insertions.bind, evictions.bind, misses.bind, hits.bind, auth.bind 및 servers.bind입니다. dig 유틸리티를 사용하여 이것을 쿼리하는 예제 명령은 다음과 같습니다.

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

시스템에 systemd-resolve와 같은 것이 있으면 다음을 사용하여 서버를 직접 쿼리해야합니다.

   dig +short chaos txt hits.bind @serverIP


답변