一个很长的/ etc / hosts文件可以缓慢的DNS查找?

我在这里面临一个小问题。 我有一个很长的/etc/hosts文件。 (在网上工作,所以我在本地主持了很多网站开发)。 我们说大约40,50行。 全部redirect到127.0.0.1。

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

经过快速检查,似乎将hosts文件减less到几行,显着加速了DNS查找部分。 所以我的问题是,是否有可能面对五十行五十秒的差异,而几行的差距呢? 还是我完全错过了什么?

你的tld .local可能是问题,zeroconf使用这个。 没有真正的标准,但是内部tld的build议tld是.site或.internal。 请参阅http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-domains

一个很长的/ etc / hosts文件可以缓慢的DNS查找?

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

长时间的主机文件与“DNS客户端”服务无法正常工作是一个已知的问题。

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

在大多数情况下,一个大的HOSTS文件(超过135 kb)往往会减慢机器。

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

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

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

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

在使用大型HOSTS文件之前,最重要的事情是在您的机器上禁用域名服务客户端(“DNS客户端”或“DnsCache”)服务。 这听起来很奇怪,但DNS客户端不需要做DNS。 更糟的是,如果你有一个大的HOSTS文件(这是我的build议),DNS客户端扼杀你的整个PC。

…我亲眼目睹了三种不同的Windows机器:XP Pro,Vista和7 Starter。

我会build议使用tcpdump来查看最新的情况。 没有它,你只会猜测。

基本的语法是

 tcpdump -n -i eth0 port 80 or port 53 

(如果你有兴趣看到端口80和53,-n防止DNS查找,假设所有的通信都在eth0上进行)。

如果这是太快或太多的信息,redirect到转储文件添加:

  -s 0 -w /tmp/dump 

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

当我使用Spybot时,会插入大约50,000个主机文件条目,将已知的恶意网站redirect到127.0.0.1。 我从来没有注意到有这种性质的长主机文件的任何问题。 可能有更多的关于你的开发设置或代码本身。 你在当地服务的网站有多less(50?)当有50个参赛作品时,每个人都需要这么长时间才能做出回应?

由于各种原因,我在一些机器上拥有数百个条目的主机文件。 这对DNS查找没有任何影响,只是因为一旦机器在主机文件中find一个条目,就不会查找相同的信息。 如果所有其他东西都被正确configuration,则导出hosts文件的大小不会影响性能,因为即使有一千个条目,该文件仍然可以比执行DNS查找更快地被parsing。 检查您的机器parsing地址的顺序。 主机文件应该是第一个。

根据我的testing,即使在“DNS客户端”服务被禁用的情况下,具有几百万条目的34 MB主机文件也会减慢Windows中的浏览速度。 所以,有一个超出你可能不想去的最大尺寸。