web-dev-qa-db-ja.com

DNSキャッシュ効率/キャッシュされたアイテムを測定する方法は?

私はdnsmasqをDebianサーバー上のキャッシュ専用DNSサーバーとして構成しましたが、うまく機能しています(Digを介したDNS応答時間の改善が見られます)。

ただし、dnsmasqがキャッシュしている内容をいつでも理解できるようにしたいので、達成している効率(ヒット率)について考え始めることができます。

私はmanページとwebを見回しましたが、どの時点でもdnsmasqがキャッシュしているものを確認する方法を見つけることができません(たとえば、 dnsmasq.leaseファイル)。

dnsmasq DNSキャッシュはメモリにのみ保持されますか?または、ログファイルを変更する必要がありますか?

16
binaryfrost

私は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に保持していると思います。

したがって、キャッシュをダンプする場合は、dnsmasqが呼び出されたときに-qスイッチを有効にする必要があります。これは、dnsmasqのマニュアルページで説明されています。

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

Manページからこの情報を取得する別の方法:

キャッシュ統計情報は、ドメインバインドのクラス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
2
NeroP