0

組み込みの tomcat バージョン 7.0.32 を使用するアプリケーションがあります。レイテンシーに関して特異な状況を観察しています。

アプリケーションでいくつかの負荷テストを行っています。私が観察したことは、Tomcat への最初のリクエストにかなりの時間がかかることです。たとえば、約 300 ミリ秒以上の速度です。後続のリクエストには約 10 ~ 15 ミリ秒かかります。

BIOコネクタを使用しています。デフォルトでサポートされている HTTP 1.1 を使用しているため、永続的な接続が使用されていることはわかっています。そのため、理想的には、キープアライブ タイムアウトが経過するまで、1 つの TCP 接続のみが作成され、すべての要求が同じ接続にプッシュされます。

TCP 接続の作成には多少のコストがかかると思いますが、その差は非常に大きいです。

最初のリクエストと後続のリクエストの間でこの大きなレイテンシの違いを引き起こしている可能性がある理由と、それを減らす/排除するために何かできることはありますか.

ありがとう、

ヴィクラム

4

1 に答える 1

0

JSP を使用している場合は、コンパイルされます。

データベースに接続している場合、以前は接続プールが空だった可能性があります。一般的に言えば、遅延初期化されたシングルトンがある場合、最初のリクエストは待たなければなりません。

これに加えて、JIT がその役割を果たします。したがって、最初の要求の後、JIT はいくつかの最適化を適用した可能性があります。

負荷テスト (またはパフォーマンス テスト) の場合は、最初の要求/実行を無視します。これはまだ "ウォームアップ" フェーズであるためです。

アップデート

マイクロ ベンチマークに関する興味深い情報が見つかるかもしれません。

于 2013-06-26T13:01:35.967 に答える