Arthas实战:阿里巴巴开源的Java诊断利器
Arthas简介
Arthas是Alibaba开源的Java诊断工具,可以在线排查问题,无需重启即可直观分析JVM的状况。
Arthas支持JDK 6+,采用命令行交互模式,同时提供丰富的tab
自动补全功能,进一步方便进行问题的定位和诊断。
Arthas安装
有以下几种方式安装Arthas:
-
通过
curl
命令在Linux/Mac下安装:curl -L https://arthas.aliyun.com/install.sh | sh
-
通过
wget
命令在Linux/Mac下安装:wget https://arthas.aliyun.com/install.sh sh install.sh
-
通过Docker安装:
docker pull arthas/arthas
-
通过源码编译安装:
git clone https://github.com/alibaba/arthas.git cd arthas mvn clean install -DskipTests
Arthas基本使用
这里以一个简单的Spring Boot应用为例,演示Arthas的功能。
-
启动示例程序
java -jar spring-boot-demo.jar
-
打开另一个Terminal,
attach
到目标进程arthas-boot.jar -pid <pid>
-
查看dashboard
dashboard
Dashboard展示了进程的实时数据面板,包括线程、内存、GC等信息。
-
watching一个方法
watch demo.MathGame primeFactors
观察到
primeFactors
方法执行的参数和返回值。 -
tracing方法内部调用路径
trace demo.MathGame run
显示
run()
方法内部的详细调用链路。 -
增加logging打印日志
logger --pattern {params[0]} demo.MathGame
Demo中打印参数列表中的第一个参数。
总结
Arthas提供了方便且功能强大的命令,可以解决本地代码调试中的种种疑难问题。它是一个无可替代的Java诊断利器,推荐所有Java开发者进行学习使用。