Tomcat でページの応答時間をマイクロ最適化しています。ほとんどの場合、何度も更新すると応答時間が50 ミリ秒になりますが、ページが 1 秒または 2 秒間ヒットしないと、応答時間が跳ね上がります。500msまで。
ローカル、ローカルではなく、APR、NIO、JIO、静的または動的応答 (つまり、静的ファイルを提供するか、応答を動的に処理する) に関係なく、これと同じ動作を見てきました。これまでのところ、この動作が Tomcat で発生しないことはまだ確認していません(頻度に関係なく、400 ミリ秒未満で一貫しています)。
手がかりがあるかどうかを確認するために Visual VM も使用しました。
ある種のキープアライブだと思っていましたが、Apache Bench を実行すると、応答時間がさらに速くなります (サブ 50 ミリ秒) (明らかに、頻繁にヒットするため)。
では、Tomcat で頻繁に URL にヒットしないように低レイテンシーを維持するにはどうすればよいでしょうか? おそらく、この質問は ServerFault の方が適切でしょうか?
更新: Tomcat 6 の問題であるとほぼ確信しています。Tomcat 7 でテストしたと思っていましたが、再度テストしたところ問題はありませんでした (以下の結果を参照)。最新の Tomcat 6 でもまだこの問題があります。
Tomcat 6のab
出力は次のとおりです (最大値に注意してください)。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 14 39 45.2 30 314
Waiting: 14 38 45.2 30 314
Total: 14 39 45.2 30 314
ab
Tomcat 7 の出力は次のとおりです。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 25 38 8.8 37 67
Waiting: 25 37 8.7 36 66
Total: 25 38 8.8 37 67
Tomcat のバージョンだけが違います (同じマシン、同じ JDK など)。最新のTomcat 6でも問題ないと確信していましたが、最初のリクエストで同様のレイテンシーが発生しました。