主机解析速度一直很慢

主机解析速度一直很慢

我尝试以编程方式获取页面,每次解析主机都正好需要 10 秒。在另一台机器上,正好需要 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 上运行。

为了进一步混淆,同一台机器上的浏览器会立即获取相同的页面。

有什么线索吗?

答案1

这是因为 wget 和 lynx 没有缓存 DNS 结果,并且您的浏览器甚至可能禁用了 IPv6。

的 DNSwww.sportsdirect.com已损坏,并且 AAAA 记录超时。

您可以使用wget 的-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

答案2

浏览器可能正在缓存 DNS 结果。可能值得直接尝试查询已配置的 DNS 服务器,以查看问题是否出在它们身上——也许其中一个服务器特别慢或宕机。从行nameserver中获取 IP 地址/etc/resolv.conf并运行

dig +trace www.sportsdirect.com 8.8.8.8

(替换8.8.8.8为您的 DNS 服务器的 IP 地址)

相关内容