web-dev-qa-db-ja.com

CentOS 7でcurlとwgetを使用すると応答が遅い

私の問題は、curlとwgetを使用してなぜこのような遅い応答時間が得られるのか理解できないことです。遅いとは、1秒もかからないページの最小5秒または6秒を意味します。

私はあらゆる種類のシナリオをテストしましたが、まったく違いを生むことができないようです。

私のサーバーは:CentOS Linux release 7.3.1611(Core)

新しくインストールされたWordPressアプリケーションの速度が低下するため、これを修正しようとしています。問題はWPではなく、curlを使用するPHP呼び出しのように見えることを(Xdebugを使用して)確認しました。その後、他のアプリケーションを使用せずに、コマンドラインからテストしました。

したがって、たとえば:

$ 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ルックアップに関連していると考えていますが、他に何を試すべきか本当にわかりません。それは非常にイライラします。

どんな援助でも大歓迎です。ありがとう!

2
SuperDog

さて、問題は解決しました。同様の問題についてもう一度ウェブを調べた後、私はこのサイトに出くわしました。

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

/etc/resolv.confの最後に次の行を追加すると、問題が解決しましたが、記事全体を読むことをお勧めします。

options single-request-reopen
3
SuperDog