我们有一个使用嵌入式tomcat版本7.0.32的应用程序。我观察到延迟方面的特殊情况。
我正在对应用程序进行一些负载测试,我观察到的是对tomcat的第一个请求需要相当长的时间,例如:速率大约300+ ms。后续请求大约需要10-15ms。
我正在使用BIO连接器。我知道使用持久连接,因为我使用HTTP 1.1,默认情况下支持HTTP 1.1。因此,理想情况下,只创建一个TCP连接,并在同一连接上推送所有请求,直到保持活动超时为止。
我得到创建TCP连接会涉及一些成本,但差别很大。
任何想法可能导致第一个和后续请求之间的延迟差异很大,我们可以做任何事情来减少/消除它。
谢谢,
维克拉姆
答案 0 :(得分:0)
如果您正在使用JSP,则会对它们进行编译。
如果要连接到数据库,则连接池之前可能为空。 一般来说,如果你有懒惰初始化的单身人士,第一个请求必须等待。
除此之外,JIT扮演了它的角色:因此在第一次请求之后,JIT可能已经应用了一些优化。
如果是负载测试(或性能测试),我会忽略第一个请求/运行,因为这仍然是“热身”阶段。
更新
您可能会找到有关micro benchmark有趣的信息。