1、启动arthas : java -jar arthas-boot.jar
2、查看 dashboard: dashboard :查看系统的实时数据面板 这个命令可以全局的查看jvm运行状态,比如内存和cpu占用情况
3、查看线程信息: thread
thread 1 会打印线程 ID 1 的栈,通常是 main 函数的线程
thread 1 | grep 'main'
4、通过 jad 来反编译 Main Class: jad demo(包名).MathGame(类名)
5、watch 命令来查看demo.MathGame#primeFactors方法的返回值: watch demo(包名).MathGame(类名) primeFactors(方法名) returnObj(返回值)
6、性能瓶颈定位: 使用monitor命令监控方法调用 和 trace命令来追踪这个方法的调用链
monitor -c 5 com.yourpackage.YourClass :监控com.yourpackage.YourClass中调用次数最多的5个方法,并显示它们的调用时间和次数,找出最耗时的方法。
trace com.yourpackage.YourClass yourMethod :跟踪调佣链路,查看方法中哪个部分最耗时
7、内存泄漏排查:heapdump命令生成堆内存快照文件,使用Arthas自带的heapdump分析工具或者其他内存分析工具(如MAT)分析排查对象类型、占用内存大小等维度
8、线程问题排查:死锁、线程挂起等都会严重影响应用的性能
thread :所有线程状态
thread id :查新线程id的信息
thread -n 5 :查看线程cup占比最大的top 5 线程详情
thread -b :查看阻塞的线程