arthas 使用总结
本文为博主原创,未经允许不得转载:
Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。
- Github: https://github.com/alibaba/arthas
- 文档: https://arthas.aliyun.com/doc/
下载arthas-boot.jar
,再用java -jar
命令启动:
wget https://arthas.aliyun.com/arthas-boot.jar ; java -jar arthas-boot.jar
arthas-boot
是Arthas
的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程。
选择需要监控进程前的序号,输入 1
,再Enter 回车,便会打印 arthas 的banner
:
输入 help 可以查看 arthas 的所有命令:
Dashboard
dashboard
命令可以查看当前系统的实时数据面板。分为三个部分:第一部分为cpu监控,第二部分为内存监控,第三部分为环境信息
输入 q
或者 Ctrl+C
可以退出dashboard命令。
还可以使用指定的方式启动,在浏览器web页面进行访问服务器的arthas 控制台:
指定arthas 服务所在的ip地址:--target-ip 112.25.26.68
指定arthas 服务访问的端口及监听的服务进程: --telnet-port 3658 19113
java -jar arthas-boot.jar --target-ip 112.25.26.68 --telnet-port 3658 19113
Thread
直接执行 thread ,查看所有的线程:
查看CPU使用率top n线程的栈 :thread -n 3
![](https://img2020.cnblogs.com/blog/1110857/202106/1110857-20210618235247934-2024377602.png)
thread pid
命令会打印线程ID 的栈。
Sc
可以通过 sc
命令来查找JVM里已加载的类:
Jad
可以通过 jad
命令来反编译代码.查看当前jvm 中类的代码。此命令在项目发布定位某个类信息有没有更改过来时,使用这个命令可以很快定位代码是否修改。
Watch
通过watch
命令可以查看函数的参数/返回值/异常信息。
退出Arthas
用 exit
或者 quit
或者 stop 命令可以退出Arthas。