【发布时间】:2013-06-23 13:47:56
【问题描述】:
我们有一个使用嵌入式 tomcat 版本 7.0.32 的应用程序。我正在观察一种关于延迟的特殊情况。
我正在对应用程序进行一些负载测试,我观察到对 tomcat 的第一个请求需要相当长的时间,例如速率约为 300+ 毫秒。后续请求大约需要 10-15 毫秒。
我正在使用 BIO 连接器。我知道使用了持久连接,因为我使用的是 HTTP 1.1,默认情况下它具有该支持。所以理想情况下,只创建 1 个 TCP 连接,并将所有请求推送到同一个连接上,直到保活超时结束。
我知道创建 TCP 连接会涉及一些成本,但差异很大。
知道是什么原因导致第一个请求和后续请求之间的延迟存在巨大差异,我们是否可以采取任何措施来减少/消除它。
谢谢,
维克拉姆
【问题讨论】:
-
第一个请求是什么。正在尝试加载页面或进行任何身份验证或授权?
-
或者是 JSP 被编译成 servlet,而 servlet 被编译成 .class 文件?您可以预编译您的 JSP 并查看它是否会消失。
-
没有使用 JSP,只是普通的 http servlet。也没有数据库调用。只是一个带有 JSON 数据的简单帖子,servlet 读取数据并返回相同的请求数据。
标签: java http tcp tomcat7 keep-alive