Cache Cleaning Diagnostic Information
- A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of nodes without data - A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of deadnodes - A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of times that the functionlib/dns/cache.c:incremental_cleaning_action
is called - A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of times that the functionlib/dns/cache.c:overmem_cleaning_action
is called - A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of times that the functionlib/dns/rbtdb.c:overmem_purge
is called - A counter in
cachestats
(JSON/XML) and++ Cache Statistics ++
(named.stats) for the number of times that the functionlib/dns/rbtdb.c:cleanup_dead_nodes
is called
Additional logging at DNS_LOGCATEGORY_DATABASE
, DNS_LOGMODULE_CACHE
, ISC_LOG_DEBUG(1)
in the following functions:
-
lib/dns/rbtdb.c:overmem_purge
- log node name (local name plus tree origin?) purged; log mctx in_use delta for both heap and tree after the purge -
lib/dns/rbtdb.c:cleanup_dead_nodes
- logbucketnum
; log number of nodes purged; log mctx in_use delta for both heap and tree after the purge
Noting for the record that we already have CacheNodes/"cache database nodes" giving us the total node count.
Also noting that counts of fully expired and fully ancient nodes would be nice, but there aren't usually code events marking a node's transition from one group to another, so that will have to be something left for core dumps or full database traversals.
Finally, if this is to be prepared as a patch, can it please also include adding an INSIST(0)
in lib/dns/rootns.c:dns_root_checkhints()
immediately following the logging of "unable to get root NS rrset from cache"?
Edited by Brian Conry