Come misurare l'efficienza della cache DNS / elementi memorizzati nella cache?


16

Ho configurato dnsmasqcome server DNS solo cache su un server Debian e funziona bene (vedo tempi di risposta DNS migliorati tramite dig).

Tuttavia, mi piacerebbe capire cosa dnsmasqsta memorizzando la cache in qualsiasi momento, in modo da poter iniziare a pensare all'efficienza (ovvero al tasso di successo) che sto raggiungendo.

Ho dato un'occhiata alle pagine man e al web e non riesco a trovare come vedo cosa dnsmasqsta memorizzando la cache in qualsiasi momento (diversamente da come puoi fare per i contratti di locazione, ad esempio, che sono conservati in un file dnsmasq.lease).

La dnsmasqcache DNS è mantenuta solo in memoria? O devo eseguire il munging dei file di registro?

Risposte:


22

Non ho accesso dnsmasqma secondo questo thread intitolato: dnsmasq è la memorizzazione nella cache? è possibile inviare il segnale USR1 al dnsmasqprocesso, causando il dump delle statistiche nel registro di sistema.

$ sudo pkill -USR1 dnsmasq

Quindi consultare i registri di sistema:

$ 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

NOTA: credo che dnsmasqmantenga la sua cache nella RAM.

Quindi, se si desidera scaricare la cache, è necessario abilitare l' -qopzione quando dnsmasqviene invocata. Questo è menzionato nella dnsmasqpagina man:

   -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
Grazie, sembra funzionare e produce un output simile a: 20 ottobre 08:39:17 dnsmasq [4846]: tempo 1413790757 20 ottobre 08:39:17 dnsmasq [4846]: dimensione cache 4096, 0/59976 inserimenti cache ri utilizzate voci della cache non scadute. 20 ott 08:39:17 dnsmasq [4846]: le query sono state inoltrate 13376, le query hanno risposto localmente 1326 Quindi immagino che i risultati totali della voce cache siano: 1326/14702, che è circa il 9%. Più a lungo lo lascio attivo e più siti degli stessi siti che visito, immagino che potrebbe insinuarsi.
binaryfrost,

Sui router basati su OpenWRT utilizzare logread | tail.
Brian,

1
@binaryfrost qualche idea sull'utilizzo della memoria per indirizzo DNS memorizzato nella cache? diciamo che se ho 500.000 di cache memorizzerà tutti i record di memoria prevista?
satch_boogie,

I sistemi che usano systemd non hanno / var / log / syslog e non riesco a trovare alcuna voce per dnsmasq dopo aver emesso SIGUSR1 journalctlnell'output. C'è un modo per specificare esplicitamente dove dnsmasq dovrebbe scaricare i record?
Sergiy Kolodyazhnyy,

2

Un altro modo per ottenere queste informazioni dalla pagina man:

Le statistiche della cache sono disponibili anche nel DNS come risposte alle query della classe CHAOS e digitare TXT nel bind di dominio. I nomi di dominio sono cachesize.bind, insertions.bind, evictions.bind, misses.bind, hits.bind, auth.bind e server.bind. Un comando di esempio per interrogare questo, usando l'utilità dig sarebbe

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

Se hai qualcosa come systemd-resolver sul tuo sistema, dovrai interrogare direttamente il server con:

   dig +short chaos txt hits.bind @serverIP
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.