简介:接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标。
背景
接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标。升级前压测报告:
升级后压测报告:
在机器配置(1C4G)相同的情况下,吞吐量从原来的53.9/s下降到了6.4/s,且CPU负载较高。
并且开发反馈从公司全链路监控系统SkyWalking中查询到的链路信息可以得知大部分请求Feign调用的耗时不太正常(ms),而实际被调用的下游服务响应速度很快(3ms)。
定位问题
在接收到反馈以后,我立即申请了相应机器的权限,并往相应机器上传了Arthas(version3.4.3)。
让业务方保持压测,开始问题定位。
1.执行profiler命令对CPU进行性能分析
[arthas
]$profilerstart-d30-f/tmp/arthas/1.txt等待30s后,打开1.txt,查看CPU性能分析结果,开头部分示例如下:---ns(4.24%),samples......[14]org.springframework.boot.loader.LaunchedURLClassLoader.definePackageIfNecessary[15]org.springframework.boot.loader.LaunchedURLClassLoader.loadClass[16]java.lang.ClassLoader.loadClass[17]java.lang.Class.forName0[18]java.lang.Class.forName[19]org.springframework.util.ClassUtils.forName[20]org.springframework.