DNSMasq 返回缓存的 DNS 条目的速度比我的 ISP 慢。

DNSMasq 返回缓存的 DNS 条目的速度比我的 ISP 慢。

我在一台相对空闲的 Pentium D 3.4Ghz Debian Linux 机器上安装了 DNSMasq。当我在本地运行 dig 查询时,第二个结果始终为 0 毫秒。当我在网络上的任何其他机器上运行 dig 查询时,缓存响应时间始终为 35 毫秒。尽管我得到的 LAN ping 时间低于 1 毫秒,但情况仍然如此。

使用DNS 基准我进行了一项测试,结果表明,对于缓存查询,我访问 ISP 的 DNS 服务器的速度比访问我自己的 DNS 服务器的速度更快。

为什么远程查询的缓存 DNS 响应需要 35 毫秒,而服务器命令提示符下的本地查询却需要不到 1 毫秒?

答案1

我遇到了同样的问题,我的本地 dnsmasq 实例比 opendns 和许多其他 ISP 提供的 DNS 服务器慢。以下方法最终对我有用,结果是大幅改善我的 dnsmasq 比任何远程 DNS 服务器都快 3 倍。

调整/etc/dnsmasq.conf中的cache-size参数,我将其设置为10000。

# Set the cachesize here.
cache-size=10000

答案2

我怀疑这是由于本地 DNS 服务器内存不足,导致从磁盘读取名称的缓存数据库条目,从而导致响应时间变慢。也可能是网卡质量差导致 CPU 使用率过高... 当您从主机进行查找时,我会监控系统资源。

使用“free”命令检查有多少内存可用,您可以执行“free -h”获得更人性化的输出。

相关内容