Tomcat首次请求的高延迟

时间:2013-06-26 12:17:15

标签: java http tcp tomcat7 keep-alive

我们有一个使用嵌入式tomcat版本7.0.32的应用程序。我观察到延迟方面的特殊情况。

我正在对应用程序进行一些负载测试,我观察到的是对tomcat的第一个请求需要相当长的时间,例如:速率大约300+ ms。后续请求大约需要10-15ms。

我正在使用BIO连接器。我知道使用持久连接,因为我使用HTTP 1.1,默认情况下支持HTTP 1.1。因此,理想情况下,只创建一个TCP连接,并在同一连接上推送所有请求,直到保持活动超时为止。

我得到创建TCP连接会涉及一些成本,但差别很大。

任何想法可能导致第一个和后续请求之间的延迟差异很大,我们可以做任何事情来减少/消除它。

谢谢,

维克拉姆

1 个答案:

答案 0 :(得分:0)

如果您正在使用JSP,则会对它们进行编译。

如果要连接到数据库,则连接池之前可能为空。 一般来说,如果你有懒惰初始化的单身人士,第一个请求必须等待。

除此之外,JIT扮演了它的角色:因此在第一次请求之后,JIT可能已经应用了一些优化。

如果是负载测试(或性能测试),我会忽略第一个请求/运行,因为这仍然是“热身”阶段。

更新

您可能会找到有关micro benchmark有趣的信息。