我试图以编程方式获取页面,每次都需要10秒来parsing主机。 在另一台机器上,它只需要30秒。 两个Linux。
我的代码是在Java中,但问题是使用wget重现:
time wget -d --header "User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24" http://www.sportsdirect.com
这将持续10秒钟:
Resolving www.sportsdirect.com... 86.17.5.250
我们正在Linux上运行。
混淆事物进一步浏览器在同一台机器立即获取相同的页面。
任何线索?
这是因为wget和lynx没有cachingDNS结果,而且您的浏览器甚至可能禁用了IPv6。
www.sportsdirect.com的DNS被破坏,超出AAAAlogging。
您可以使用-4或--inet4-only选项来强制使用IPv4。
$ time host -t A www.sportsdirect.com www.sportsdirect.com is an alias for sd.gwcorp.sports-world.com. sd.gwcorp.sports-world.com has address 86.17.5.250 real 0m0.009s user 0m0.000s sys 0m0.000s $ time host -t AAAA www.sportsdirect.com ;; connection timed out; no servers could be reached real 0m14.008s user 0m0.000s sys 0m0.000s
浏览器可能正在cachingDNS结果。 这可能是值得直接尝试查询configuration的DNS服务器,看看他们是否是问题 – 也许其中之一是特别慢或下降。 从/etc/resolv.conf的nameserver行获取IP地址并运行
dig +trace www.sportsdirect.com 8.8.8.8
(用您的DNS服务器的IP地址replace8.8.8.8 )