较长的 /etc/hosts 文件会减慢 DNS 查找速度吗?

较长的 /etc/hosts 文件会减慢 DNS 查找速度吗?

我在这里遇到一个小问题。我有一个很长的/etc/hosts文件。(在网络上工作,所以我在本地托管了很多网站以供开发)。假设它大约有 40 到 50 行。全部重定向到 127.0.0.1。

现在,当我检查 Chrome 的检查器时,似乎我的本地网页由于 DNS 查找部分而加载缓慢。在文件mygreatwebsite.local中也定义的 URL上/etc/hosts

经过快速检查,似乎将hosts文件缩减为几行可以大大加快 DNS 查找部分的速度。所以我的问题是,是否有可能遇到 50 行代码大约 5 秒的差异,而几行代码只需要很少的时间?还是我完全错过了什么?

答案1

您的顶级域名 .local 可能是问题所在,zeroconf 使用此域名。没有真正的标准,但建议的内部顶级域名是 .site 或 .internal。请参阅http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-domains为了这。

答案2

较长的 /etc/hosts 文件会减慢 DNS 查找速度吗?

答案是是的,在 Windows (XP/Vista/7) 机器上。

一个已知问题是,较长的 hosts 文件无法与“DNS 客户端”服务很好地配合。

http://winhelp2002.mvps.org/hosts.htm

大多数情况下,较大的 HOSTS 文件(超过 135 kb)会降低机器的速度。

[解决方案:将“DNS客户端”服务设置为手动或禁用]

http://vlaurie.com/computers2/Articles/hosts.htm

请注意主办方除非将“DNS客户端”服务设置为手动启动,否则超过 100 KB 的文件实际上会减慢浏览速度。

www.ericphelps.com/scripting/samples/Hosts/:

在使用大型 HOSTS 文件之前,最重要的事情是禁用计算机上的域名服务客户端(“DNS 客户端”或“DnsCache”)服务。这听起来很奇怪,但 DNS 客户端并不是执行 DNS 所必需的。更糟糕的是,如果您有一个大型 HOSTS 文件(这是我的建议),DNS 客户端会阻塞您的整个 PC。

... 我亲眼在三台不同的 Windows 机器上见证了这一点:XP Pro、Vista 和 7 Starter。

答案3

我建议使用 tcpdump 来查看实际发生了什么。没有它,您只能猜测。

基本语法是

tcpdump -n -i eth0 port 80 or port 53

(如果您有兴趣查看端口 80 和 53,请使用 -n 来阻止 DNS 查找,假设所有通信都在 eth0 上进行)。

如果速度太快或者信息量太大,请将其重定向到转储文件并添加:

 -s 0 -w /tmp/dump

并使用 wireshark 查看转储文件。您可以在文件中看到精确的时间信息以及更多信息...

答案4

根据我的测试,即使禁用“DNS客户端”服务,34 MB 大小且包含几百万个条目的主机文件也会稍微降低 Windows 中的浏览速度。因此,存在一个最大大小,您可能不希望超过这个大小。

相关内容