Tomcat7到Tomcat8的性能下降(差不多有50%)

问题描述:

我在应用服务器上从tomcat7升级到了tomcat8上我们的生产环境。硬件配置与旧env完全相同。Tomcat7到Tomcat8的性能下降(差不多有50%)

我看到平均响应时间增加了近50%(从204MS到〜450ms)我看着我们的APM,我可以看到JSP处理时间tomcat8应用服务器增加。

有人在这里面临过这个问题吗?如果是这样,请分享解决方案。

我在这里安装tomcat7和tomcat8关键事务细分。

我看到tomcat8上的JSP处理时间显着增加。

Tomcat7:

Tomcat7 Key transaction breakdown

Tomcat8: Tomcat8 Key transaction breakdown

最后我想通了:阿帕奇Tomcat8文档帮我找出问题。

统一表达式语言3.0增加了对引用静态字段和方法的支持。在JSP中支持此功能需要更改javax.servlet.jsp.el.ScopedAttributeELResolver实现,以便它还检查标识符以查看它们是否是导入的类或字段的名称。在某些情况下,这种变化会导致显着的减速。这会影响可能引用页面,请求,会话或应用程序作用域变量的标识符,或者可能未定义。未定义时,解析标识符将花费更长的时间,因为现在还要检查标识符是否是导入的类或字段。为了避免这种缓慢下来,代码如:

$ {未定义}

应替换:

$ {requestScope.undefined}

或类似,使用为适当范围该变量定义为 。

以下是完整的文档:https://tomcat.apache.org/migration-8.html#JavaServer_Pages_2.3

现在我的tomcat降低到7版本,并开始与开发商合作,以解决这个问题,希望能在下个月升级回tomcat8!