使用环境
k8s容器内运行了一个springboot服务,服务的启动方法是main()方法
下载并启动 arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
选择应用 java 进程
就一个进程org.apache.catalina.startup.Bootstrap,输入编号1回车。Arthas 会 attach 到目标进程上,并输出日志:
使用thread命令查看所有进程
使用 trace 查看方法内部调用路径,并输出方法路径上的每个节点上耗时
先执行命令,再调用对应的方法
trace cc.eslink.bu.controller.pc.QueryMapController queryMapWaterDecline
trace cc.eslink.bu.service.impl.QueryMapServiceImpl queryMapWaterDecline
trace cc.eslink.bu.service.impl.QueryMapServiceImpl queryMap
最终定位到执行慢的代码
stop 关闭 Arthas 服务端
参考链接
官方文档
https://arthas.aliyun.com/doc/vmtool.html
其它博客
https://blog.csdn.net/DevelopmentStack/article/details/117557817
https://github.com/alibaba/arthas/issues?q=label%3Auser-case