問題タブ [time-to-first-byte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
522 参照

django - Django + Nginx + Gunicorn - TTFB が非常に高いのはなぜですか?

nginx/gunicorn を使用して Web サーバーをセットアップするのはこれが初めてなので、TTFB が非常に高い理由について明らかなことがあれば、お詫びします。

gtmetrix.com によると、私の TTFB は 1.4 秒です。 ここに画像の説明を入力

私自身のテストでは、TTFB は約 1.3 秒でした。

Brotli、キャッシング(静的およびメディアファイル)、Http2を有効にし、htmlミニファイアを有効にしたにもかかわらず、なぜそれほど高いのか混乱しています。その理由はわかりません。私のサーバーは NYC の Digital Ocean にある 2GB の CPU (私がいる場所に近い) であるため、場所は問題ではありません。このスタック オーバーフローの質問を確認しましたが、django-htmlmin パッケージを削除しても ttfb が高くなりました。このページの私のジャンゴビューは次のとおりです。

これは単純なクエリだと思います。この get クエリのためだけに TTFB がそれほど高くなるとは思いません。データベースに問題がありますか (現在、sqlite を使用しています)。デバッグに役立つ他のファイルやものが必要な場合は、教えてください。

また、 Cloudflare のこの記事によると、私の TTFB が高い理由は次のとおりです。

CloudFlare では、nginx を広範に使用しており、TTFB を調査しているときに、圧縮を使用する場合と使用しない場合で、TTFB が nginx と大きく異なることに気付きました。Web ページを Gzip 圧縮すると、Web ページのダウンロードにかかる時間が大幅に短縮されますが、圧縮自体にコストがかかります。そのコストにより、完全なダウンロードはより高速であるにもかかわらず、TTFB が大きくなります。

そのため、Brotli を削除しようとしましたが、TTFB は依然としてかなり高く、Nginx conf ファイルで gzip を無効にしても TTFB は役に立ちませんでした。

説明: Django (sqlite データベース) で Digitalocean NYC 2GB CPU を使用する Nginx-Gunicorn サーバー

編集: Cloudflare でいくつかの問題が発生したため、Cloudflare の使用をやめました。

0 投票する
2 に答える
791 参照

php - AWS EC2 で time_starttransfer (TTFB) を減らす方法

私のウェブサイトは AWS EC2 上にあります。

次のコマンドで TTFB (Time to First Byte) を確認しました。

コンピューターでコマンドを実行したときの結果は次のとおりです。

Web サーバー自体でコマンドを実行した結果は次のとおりです。

どちらの場合も、最長の時間は time_starttransfer であることに気付きました。この時間を短縮するにはどうすればよいですか?

time_starttransfer とは何ですか?

開始から最初のバイトが転送される直前までにかかった時間 (秒単位)。これには、time_pretransfer と、サーバーが結果を計算するのに必要な時間が含まれます。

私のウェブサイトの設定

私のウェブサイトのリンクは: http://13.37.46.163/

EC2 + ServerPilot + PHP7で動くGrav CMS witchです

Amazon マシン イメージ (AMI)
Ubuntu Server 20.04 LTS (HVM)、EBS 汎用 (SSD) ボリューム タイプ。64 ビット (x86)

EC2 インスタンスタイプ
t2.micro

Web サーバー
Nginx

プログラム言語
PHP

リバース プロキシ
Nginx

キャッシュ ここで確認できるように、有効になっているOpcache
を既に使用しています: http://13.37.46.163/info.php#module_zend+opcache

CDNについては、既に Grav CDN Plugin を使用しています。( https://github.com/getgrav/grav-plugin-cdn )

私のウェブサイトのログ (リクエスト/分)

つまり、平均して 1 リクエスト/分

実施されたテスト

  1. PHP がホストしていない静的ファイルに対して TTFB テストを実行しようとしています

「main.js」ファイルで TTFB テストを実行しました。

結果は次のとおりです。

結果の分析:
結果は満足しています (time_starttransfer=0.003983)。しかし、この結果は、サイト全体に比べてファイルの重量が軽いためだと思います。問題はNGINXではなくPHP側にあると推測できます。

  1. 何が実行されているか、何がリソースを使用しているかを確認するための実行topfreeコマンド、何が不要ですか?

topコマンドの結果は次のとおりです。

CPU % を確認するために Web サイトをリロードしたときに結果を取得しました。

freeコマンドの結果は次のとおりです。

結果の分析:
使用しないほうがよいかもしれませt3.microt2.micro- わずかに速く、わずかに安価です。(?)