1.下载arthas-boot.jar,然后用java -jar的方式启动:
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
打印帮助信息:
java -jar arthas-boot.jar -h
可以通过浏览器访问
http://127.0.0.1:3658/
二、快速入门的命令
1.dashboard仪表板
- thread -n 线程号
3.jad 包名类名 反编译出类的信息
4.watch监视
5.quit 退出Arthas
6.stop完全退出Arthas
三、基础命令之二
1.session
2.reset 重置增强
3.version 显示Arthas的版本号
4.history 显示之前使用过命令
5.quit 退出当前客户端
6.stop 退出Arthas
四、jvm相关的命令
1.dashboard仪表盘
2.thread与线程相关的命令
2.1显示最繁忙的前三个线程
thread -n 3
2.2显示线程的堆栈信息
thread 线程号
thread 1 1表示线程编号
2.3显示阻塞的线程
thread -b
2.3每过1000毫秒采样一次,显示最占时间的3个线程
thread -i 1000 -n 3
2.4查看处于等待状态的线程
thread --state WAITING
五、jvm相关的命令之二
sysenv 显示当前JVM系统环境变量信息
vmoption 显示查看,更新VM诊断相关的参数
getstatic命令可以方便的查看类的静态属性
使用方式:
getstatic 类名 属性名
六、class/classloader相关命令之一
sc 命令作用 查看 JVM已加载的类信息
模糊搜索,demo包下的所有的类
sc demo.*
sm 作用查看已加载类的方法信息
七、class/classloader相关命令之二
1.把jad把字节码文件反编译成源代码
2.mc在内存中把源代码编译成class
把java文件编译到指定root目录下
mc *.java -d /root
3.使用redefine命令加载新的字节码
案例:
//把源码编译并输出到root目录下
1. jad --source-only demo.MathGame > /root/MathGame.java
//把源码编译到root
2. mc /root/MathGame.java -d /root
//加载新的字节码
3. redefine /root/demo/MathGame.class
Monitor
monitor命令:监控指定类中方法的执行情况
watch
观察到指定方法的调用情况
-b 监视方法执行前
-e 监视异常
-s 执行成功的
-f 执行完成的
watch demo.MathGame primeFactors "{params,returnObj}" -x 2
watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b
target表示对象
watch demo.MathGame primeFactors "target.illegalArgumentCount" -x 2
Trace
对方法内部调用路径进行追踪,并输出方法路径上的每个节点上耗时
trace demo.MathGame run
添加 -n 2 运行两次退出
显示jdk的方法
trace --skipJDKMethod false demo.MathGame run
trace demo.MathGame run '#cost > 1'
profiler火焰图
//启动profiler,默认监控cpu
profiler start
//显示所有支持的事件
profiler list
//查看记录数
profiler getSamples
//查看执行多久
profiler status
//停止,将输出打印信息
profiler stop