从传统WAR迁移至Spring Boot后性能下降的排查方案求助
从传统WAR迁移至Spring Boot后性能下降的排查方案求助
大家好,最近把一个基于Jersey 2.x、部署在Tomcat 8上的遗留Java应用,迁移到了最新版Spring Boot。为了尽量少改代码,我没换成Spring MVC,而是升级了Jersey版本继续用。功能测试全部通过,本来以为稳了,结果压测的时候傻了——JMeter测出的新应用整体响应时间比旧系统慢了不少,这可愁死我了。
我已经排查了不少点,先跟大家说说:
- 我统计了@Path注解的REST处理方法从入口到出口的耗时,和旧系统基本一致,没看出慢在哪
- JSON/XML序列化是在自定义的
MessageBodyWriter里做的,我也打了日志统计执行时间,这部分也没有明显的性能损耗 - 现在用的是Spring Boot内嵌Tomcat,我查了Tomcat连接池和数据库连接池:Tomcat连接池默认是200,旧系统才用150,理论上资源更充足;数据库那边因为业务处理本身耗时正常,应该也不是池的问题
- 另外我还遇到个特别诡异的现象:用VisualVM做CPU profiling的时候,JMeter的平均响应时间居然大幅下降!试了好几次都是这样,但完全搞不懂为什么CPU profiling反而能提升性能?
我现在有点摸不着头脑,有没有大佬能给点排查方向或者思路?感激不尽!
内容来源于stack exchange
相关产品推荐
相关产品推荐

