Domain-Name-System

CentOS 7 上 curl 和 wget 響應緩慢

  • June 30, 2017

我的問題是我無法弄清楚為什麼我使用 curl 和 wget 得到如此緩慢的響應時間。當我說慢時,我的意思是一個頁面至少需要五到六秒,而這應該只需要一秒或更短的時間。

我已經測試了各種場景,但我似乎根本無法做出任何改變。

我的伺服器是:CentOS Linux release 7.3.1611 (Core)

我正在嘗試解決此問題,因為它會降低新安裝的 WordPress 應用程序的速度。我最終確定(使用 Xdebug),而不是 WP 的問題,它似乎是使用 curl 的 PHP 呼叫。隨後我一直在命令行進行測試,沒有任何其他應用程序。

因此,例如:

$ curl -o /dev/null "http://techrepublic.com"
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                            Dload  Upload   Total   Spent    Left  Speed
 100   178  100   178    0     0     30      0  0:00:05  0:00:05 --:--:--    41

URL 是什麼並沒有什麼區別,但是如果我使用IP 地址而不是域名,則根本沒有問題。

使用 wget 也存在同樣的問題。

所以,我嘗試過的一些事情是:

  • a) 更改 /etc/resolv.conf 中的 DNS 伺服器
  • b) curl 和 wget 的效果相同
  • c) 與 http 和 https 的效果相同
  • d) 重頁和輕頁的效果相同
  • e) 在 Windows 10、同一網路、同一路由器等上使用 curl 進行測試,大約需要一秒鐘或更短的時間
  • f) 以普通使用者和 root 使用者身份測試

我的主 DNS 伺服器現在在 /etc/resolv.conf 中列為 8.8.8.8,應該沒問題。

為了獲得更多資訊,我還使用了這個:

$ curl -L --output /dev/null --silent --show-error --write-out 'lookup: %{time_namelookup}\nconnect:%{time_connect}\nappconnect:%{time_appconnect}\npretransfer:%{time_pretransfer}\nredirect:%{time_redirect}\nstarttransfer: %{time_starttransfer}\ntotal:%{time_total}\n' 'techrepublic.com'
Output:
lookup: 5.514
connect:5.528
appconnect:0.000
pretransfer:5.528
redirect:5.819
starttransfer: 6.680
total:12.552

(不知道為什麼,但以這種方式使用 curl 似乎比在沒有所有選項的情況下使用它需要更長的時間,但無論哪種方式,它仍然需要太長時間)

所以,我想不知何故,某處,這與 DNS 查找有關,但我真的不確定還有什麼可以嘗試的。這非常令人沮喪。

任何幫助將不勝感激。謝謝!

好的,問題解決了。在再次鑽研網路以解決類似問題後,我來到了這個網站,它描述了同樣的問題:

http://aarvik.dk/disable-ipv6/

將以下行添加到 /etc/resolv.conf 的底部為我解決了這個問題,但我建議您完整閱讀這篇文章:

options single-request-reopen

引用自:https://serverfault.com/questions/858649