当我使用命令" kill -s SIGUSR1 cat /var/run/dnsmasq.pid
"时,日志中的输出如下:
Dec 2 14:23:48 dnsmasq[22548]: cache size 10000, 22230/42649 cache insertions re-used unexpired cache entries.
Dec 2 14:23:48 dnsmasq[22548]: queries forwarded 97058, queries answered locally 544818
我很困惑,缓存大小是10000,但是"已插入缓存的名称总数"是42649,为什么这两个数字不一样?如果我的内存足够大,我如何使缓存大小大于10000?
答案 0 :(得分:1)
克隆回购后
git clone git://thekelleys.org.uk/dnsmasq.git
查看生成日志消息的源文件 dnsmasq / src / cache.c ,10000是整数结构元素 daemon-> cachesize 。此值已在注释中说明,它是允许的最大DNS缓存条目数,而不是特定的内存量。
值22230是变量 cache_live_freed ,42649是变量 cache_inserted ,并且都从零开始,并且在缓存重新加载时都重置为零。
变量 cache_inserted 在任何成功提交缓存条目时递增,无论插入是新的还是替换过期的内容。还有一个不成功或不完整的提交,它不会被这个变量计算。
变量 cache_live_freed 具有相当复杂的含义,但基本上归结为替换过期的缓存条目。