这段时间在做产品的性能测试,一直达不到压测指标,而且远高于压测指标数据。通过系统运行日志,只能体现某个模块耗时长,正常到模块已经足够分析了,可偏偏这个模块对应的业务没有数据,数据库dba也反馈数据库层面正常,没有理由会慢,所以就就麻烦了。
通过jvm看内存运行情况也看不出啥问题,跟技术大佬交流,也觉得很奇葩,不过他推荐了一个软件可以用来排查这个杂症,通过这个软件一步步跟踪下去,定位到原来是一个组件有缺陷导致。
arthas.
是Alibaba开源的Java诊断工具,采用命令行交互模式,提供了丰富的功能,是排查jvm相关问题的利器。安装简单,只要有jdk环境即可,感兴趣的可以去官网阅读,这边简单分享下trace命令的使用。
启动:java -jar arthas-boot.jar 进程ID
跟踪:trace 包名.类名 要跟踪的方法比如com.test.TestDemo doRun方法。
再运行到这个类的方法时,会显示这个方法调用哪个API耗时,对应的行数也会显示。
网友评论