Luca Morettoni
djbdns
djbdns, la cache
DJB in http://cr.yp.to/djbdns/cachesize.html
spiega come calcolare la corretta dimensione della cache in funzione del traffico
effettuato dai client.
La dimensione viene calcolata tenendo conto di un valore che dnscache riporta nei suoi
log, ovvero il valore di "cache motion". Tale valore indica la quantità di
dati (in byte) che entrano in cache, la linea di log in cui troviamo tale valore è
@4000000042cbde3101aceabc stats 16931 1090870 1 0
qui troviamo il "cache motion" pari a 1090870, mentre 16931 indica
il numero di query ricevute, 1 è il numero di connessioni UDP attivie e 0
quelle TCP.
In pratica il calcolo va fatto in questo modo:
- annotiamo il valore di "cache motion";
- dopo 24 ore prendiamo di nuovo il "cache motion";
- sottraiamo i due valori e dividiamo il risultato per la dimensione della cache
il valore ottenuto dall'ultimo passaggio indica dopo quanti giorni una informazione
viene tolta dalla cache (senza considerare il suo TTL originale).
Normalmente il TTL dei vari record si aggira intorno ai due/tre giorni, quindi mediamente
il valore di riferimento è 3.
Grazie a questo script possiamo automatizzare il calcolo,
basterà richiamarlo ogni 24 ore (come parametro andrà indicata la casella di posta in
cui vogliamo inviare le informazioni) e ad ogni scadenza riceveremo una mail simile a questa:
Date: 20 Jul 2005 0:00:02 -0000
From: Gdnslog@home
To: luca@home
Subject: dnscache report
dnscache status for home.morettoni.local
current cache size: 3000000
best cache size: 2616000
avg best cache size: 2735007 (6 samples)
one day cache ratio: 3.440
query/motion ratio: 49.469
dnscache status: up (pid 241) 1774973 seconds
--
Developed by Luca Morettoni - <luca(AT)morettoni(DOT)net>
See more at http://morettoni.net
le informazioni che otteniamo sono:
- current cache size: la dimensione attuale della cache;
- best cache size: la dimensione consigliata della cache;
- avg best cache size: la dimensione media consigliata della cache;
- one day cache ratio: permanenza media in cache delle informazioni;
- query/motion ratio: rapporto tra numero di query e il valore di "cache motion";
- dnscache status: lo stato del servizio.
la dimensione media consigliata della cache viene fatta tenendo conto di 15 campioni,
comunque è possibile modificare questo valore editando l'apposita variabile. Raggiunto
il numero massimo di campioni il calcolo riparte, usando l'ultima media ottenuta come valore
di partenza.
NOTA:
Per far funzionare correttamente lo script occorre che il file dnscache/log/run
di dnscache venga modificato in questo modo:
#!/bin/sh
exec setuidgid Gdnslog multilog t ./main/ \
'-*' '+* stats * * * *' =/var/log/dnscache/stats.log
in questo modo, tramite il tag =, multilog salverà in
/var/log/dnscache/stats.log l'ultima riga "stats" generata
da dnscache (se modificate il path del file stats.log dovrete
aggiornare anche lo script).
Grafici
Grazie a questo semplice script potete visualizzare
i grafici che riguardano le query, il valore di cache motion, il numero
di connessioni UDP e TCP attive.
Ecco alcuni grafici di esempio: