Arthas用法
-
简介
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
- 这个类从哪个 jar 包加载的? 为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到? 难道是我没 commit?分支搞错了?
- 遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
安装
快速安装
wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar
aliyun的镜像
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
gitee镜像
wget https://arthas.gitee.io/arthas-boot.jar
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可
curl -L https://alibaba.github.io/arthas/install.sh | sh
gitee镜像
curl -L https://arthas.gitee.io/install.sh | sh
全量安装
- 下载
- 解压后,在文件夹里有arthas-boot.jar,直接用java -jar的方式启动
java -jar arthas-boot.jar
- 打印帮助信息
java -jar arthas-boot.jar -h
手动安装
Linux
- 下载
- 解压缩arthas的压缩包
unzip arthas-packaging-bin.zip
- 安装Arthas(注意,这里根据你需要诊断的Java进程的所属用户进行切换)
sudo su admin rm -rf /home/admin/.arthas/lib/* cd arthas ./install-local.sh
- 启动Arthas
./as.sh
Windows
- 下载
- 解压缩arthas的压缩包
基本用法
- 启用arthas
java -jar arthas-boot.jar
- 选择应用java进程
java -jar arthas-boot.jar * [1]: 35542 [2]: 71560 arthas-demo.jar Demo进程是第2个,则输入2,再输入回车/enter
- 查看dashboard
dashboard
- 通过thread命令来获取到arthas-demo进程的Main Class
thread 1
- 通过jad来反编译Main Class
jad demo.MathGame
- 通过watch命令来查看demo.MathGame#primeFactors函数的返回值
watch demo.MathGame primeFactors returnObj
- 退出arthas
quit或者exit Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。 shutdown 完全退出arthas
卸载
Linux
rm -rf ~/.arthas/ rm -rf ~/logs/arthas
Windows
直接删除user home下面的.arthas和logs/arthas目录
参考链接