我在我们的生产环境中将应用服务器从tomcat7升级到tomcat8。硬件配置与旧环境完全相同。
我看到avg响应时间增加了近50%(从204ms到~450ms)我查看了我们的APM,我可以看到tomcat8应用服务器中的JSP处理时间增加了。
以前有人遇到过这个问题吗?如果是这样,请分享解决方案。
这里附加了tomcat7和tomcat8密钥事务细分。
我看到tomcat8上的JSP处理时间显着增加。
Tomcat7:
答案 0 :(得分:0)
最后我明白了:Apache 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!