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


16

dnsmasqDebianサーバーでキャッシュ専用DNSサーバーとして構成しましたが、うまく機能しています(digによる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ページに記載されています:

   -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
おかげで、それはうまくいくようで、次のような出力を生成します。期限切れのキャッシュエントリを使用しました。10月20日08:39:17 dnsmasq [4846]:クエリの転送13376、クエリのローカル応答1326した​​がって、キャッシュエントリヒットの合計は1326/14702で、約9%です。実行を長くし、同じサイトのより多くのサイトを訪問するようになると、それが忍び寄る可能性があると思います。
バイナリ霜14年

OpenWRTベースのルーターではを使用しますlogread | tail
ブライアン

1
@binaryfrostキャッシュされたDNSアドレスごとのメモリ使用量についてのアイデアはありますか?私が500,000のキャッシュサイズを持っている場合、どのくらいのメモリが使用されると予想されるかを記録しますか?
satch_boogie

systemdを使用するシステムには/ var / log / syslogがないため、journalctl出力でSIGUSR1を発行した後、dnsmasqのエントリが見つかりません。dnsmasqがレコードをダンプする場所を明示的に指定する方法はありますか?
セルギーKolodyazhnyy

2

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.