dnsmasq统计信息与dnsmasq.conf中的cache-size不匹配

时间:2015-12-02 06:37:23

标签: dns dnsmasq

当我使用命令" 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?

1 个答案:

答案 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 具有相当复杂的含义,但基本上归结为替换过期的缓存条目。