web-dev-qa-db-ja.com

nginxを使用して静的Webサイトを提供します。 600ミリ秒を超える応答時間。どうしましたか?

wordpress nginx httpがリクエストの99%以上にキャッシュされ、キャッシュの有効期間が2日であるブログを提供しています。これが サイトのウェブページ です。ウェブページにはかなりの数の画像があるため、遅延読み込みされます。ページの平均サイズは1mbです。

応答サイズの中央値は10KBです

enter image description here

スピードカーブを使用すると、TTFBの中央値は0.6秒になります

enter image description here

なぜこんなに高いのですか?

私はcloudflareの背後にいて、JS、CSS、画像などのすべての静的アセットはバージョン管理され、cloudflareからキャッシュされます。

私のnginx設定には

    sendfile        on;
    # https://forum.nginx.org/read.php?2,280434,280434#msg-280434
    tcp_nopush on;
    tcp_nodelay on;

    #https://support.cloudflare.com/hc/en-us/articles/212794707-General-Best-Practices-for-Load-Balancing-at-your-Origin-with-Cloudflare
    #https://www.nginx.com/blog/tuning-nginx/
    keepalive_timeout  300s;
    keepalive_requests 10000;

私も持っています

initcwndを10に設定し、initrwnd10およびipv4.tcp_slow_start_after_idle = 0

CFからオリジンまでの応答時間に関するcloudflareのレポートは次のとおりです enter image description here

これが私の 2G接続のwebpagetest.orgの結果

enter image description here

静的Webサイトも2台のマシン間で負荷分散されます。 1つはフリーモントに、もう1つはムンバイにあり、Cloudflareが地理的ルーティングを行っています。

私のTTFBがこれほど長いのはなぜですか、それを減らすために何ができますか?

enter image description here

1
Cherian

I ムンバイからテストを再実行 帯域幅の制限なしで、ページのTTFBが237ミリ秒、静的リソースのTTFBが7ミリ秒になりました。

テストを2Gに制限しました。これは非常に低い帯域幅です。

したがって、問題はWebサイトではなく、テストに課した制限です。

5
Tim

Cloudflareをスキップしても同じ結果が得られますか?ローカルでabを行うのはどうですか?強力な接続でも、最大200ミリ秒のTTFBが得られます。 Cloudflare EdgeとOriginを接続するだけでも、距離が離れているために時間がかかる可能性があります。

フルページキャッシュをオンにすると、TTFBがすぐに改善されます。

0
Gothrek