前言
碰到服务器部署的服务响应过慢我们通常可以通过类似skywalking与sleuth+zipkin的链路追踪技术来分析方法调用链路耗时情况,但有时候服务没有集成链路追踪那就得另谋犀径了,最近在工作中就碰到了此种情况,最终使用阿里巴巴的Arthas来分析,这里记录下详细过程。
下载启动
- 下载Arthas可执行jar包
在需监测应用所在机器执行如下命令直接下载
curl -O https://arthas.aliyun.com/arthas-boot.jar
- 启动下载的Arthas jar包
java -jar arthas-boot.jar
开始监测
- 选择需要监测的java应用pid序号,回车。
- 再输入需要监测的全类名与方法名,私有方法也可以,如监测MppImpl类的splitPersons方法耗时情况:
trace com.xx.mk.service.MppImpl splitPersons
再通过接口触发上述splitPersons方法的执行,可见如下监测数据
从图中可见红色字体显示的耗时高的方法。
其它功能
除了监测方法执行耗时外,Arthas还能监测java进程信息,如内存等,
更多功能可以参考官方文档
点击查看Arthas文档