我在这里面临一个小问题。 我有一个很长的/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中的浏览速度。 所以,有一个超出你可能不想去的最大尺寸。