2017-02-23 8 views
2

私の研究では、HTTP/1.1とHTTPSと比べてHTTP/2のパフォーマンスを分析しています。HTTP/1.1ストリームとHTTPSよりもHTTP/2ストリームが遅い

私のテストでは、HTTP/2がマルチプレックスされたストリームのメリットを確認するために128個のイメージのセットをロードします。イメージは、それぞれのテスト実行で、それぞれ2KB、20KB、および50KBのサイズを持っています。当初

I got the following results for Page Load Time

、私はHTTP/2が早くHTTP/1.1のようにHTTP/1.1または最大よりも速いだろうと想定しているでしょう。しかし、20KBと50KBのテストでHTTP/2が20%以上遅くなるのはなぜですか?理由を知る人がいますか?

私はサーバ側のnginx 1.10.0で使用しています。 クライアント側のクロム。待ち時間:50ms。パケット損失は低いです。

+0

あなたが測定しているケースについての結果と詳細については、多くの人がアドバイスを与えることはできません。おそらく、資産の量、HTTP要求の詳細な説明、およびどのような種類の資産など、正確にロードされているものについて詳しく説明することができます。それとも、テストコードの再現可能なサンプルです。 –

答えて

0

私はただJettyでテストを行いました(免責事項、私はHTTP/2 Jettyのメンテナーです)。

Jetty 9.4.2、JDK 8u121、シミュレートされたネットワーク往復50ms(tc経由)。

20画像、2Kそれぞれ:

HTTP/1.1: ~275 ms 
HTTP/2:  ~170 ms 
HTTP/2 Push: ~155 ms 

20画像、20Kそれぞれ:

HTTP/1.1: ~380 ms 
HTTP/2:  ~200 ms 
HTTP/2 Push: ~155 ms 

20画像、50Kそれぞれ:

HTTP/1.1: ~380 ms 
HTTP/2:  ~220 ms 
HTTP/2 Push: ~155 ms 

この簡単なテストに加えて、経験我々は、HTTP/2の多重化が実際にエンドユーザの待ち時間を短縮するのに有効であるということがあります。 HTTP/2のHTTP/2プッシュがさらに優れています。 これは、オンラインで見つけることのできる多数のHTTP/2デモによっても確認されています。

上記のクイックテストのコードはhereです。

おそらくフロー制御に関連するnginxの問題である可能性があります(画像サイズが大きいほど問題があるため)。

+0

答えをありがとう!私は同じことを疑っていました。フロー制御が問題です。任意のアイデアはどのようにnginxでこの問題を解決することができますか? – pSpindler

+0

問題をnginxプロジェクトに報告してください。 – sbordet

関連する問題