arthas 用来诊断 java 应用非常高效.
下载
wget https://arthas.aliyun.com/arthas-boot.jar
运行
java -jar arthas-boot.jar
选择需要 attach 的 java 进程
输入数字, 回车即可进入
按 q 回车或者 ctrl 表示退出
常用命令
可以输入前面字母, 按下 tab 会自动补全
help
查看帮助, 对于下面每个命令, 后面可以追加-h
查看具体每个具体命令的帮助. 例如thread -h
dashboard
仪表盘, 可以查看线程, 内存, 运行环境sc *PegasusClientFactoryWrapper
搜索某个类, 会展示类的全限定名. 注意开头要加星号, 表示模糊匹配, 因为默认按照类全限定名搜索sc -d javax.servlet.Filter
指定-d
查看详细信息
thread
查看线程thread -all
查看所有线程, 支持搭配 grep 命令
jad com.xiaomi.granary.core.PegasusClientFactoryWrapper
反编译某个类watch org.apache.commons.lang.StringUtils isBlank -x 2
查看某个方法的参数, 调用对象, 返回值. 其中-x
表示展开数组内容profiler start
过一分钟后,profiler stop
为查看一分钟的火焰图, 把生成的文件拉回本地使用浏览器访问即可
总结
arthas 非常强大, 更多使用技巧请参考 https://arthas.aliyun.com/doc/