arthas诊断工具

1.安装
linux: curl -o https://alibaba.github.io/arthas/arthas-boot.jar   //是O不是零 浏览直接访问https://alibaba.github.io/arthas/arthas-boot.jar
在运行程序之前,需要运行一个java进程在内存种
java -jar arthas-boot.jar
按序号选择诊断的进程  选择序号回车
2.卸载
linux:
rm -rf ~/.arthas
rm -rf  ~/logs/arthas
windows
C:\Users\admin\.arthas
C:\Users\admin\logs/arthas
3.启动demo
cd ~/.arthas/lib/3.6.7/arthas/
java -jar math-game.jar
启动
java -jar arthas-boot.jar
端口号被占用
java -jar arthas-boot.jar  --telnet-port 9998 --http-port -1
4.基础命令
exit/quit        //退出不断开连
stop         //停止完全退出
dashboard   //打开虚拟机内存仪表板   q ctrl+c 都可以退出
=============================
dashboard  模块内容
ID  //运行的所有线程
memory  //内存使用情况
runtime   //jvm运行状态
=============================
thread   //查看线程
thread 1  //查看ID为1的线程信息
jad 包名.类名  //反编译
watch    包名.类名  方法名  返回值     //监测    watch demo.MathGame primeFactors returnObj
=======================
help  //查看所有命令的帮助信息
cat    //显示某个文件内容
cls   //清屏
grep  // 显示某个文件的字符串    参数:-n //显示行号   -i  //忽略大小写查找   -m 行数   //最大显示行数  -e "正则表达式"  //使用正则表达式查找
sysprop  //显示所有信息
pwd   //显示当前的工作目录路径
======================
session  //查看当前会话的信息
reset  类名  //将arthas增强的类还原,服务器关闭所有增强也会重置   参数: 类名    *List    不带参数还原所有
version  //加载当前artchas版本号
history  // 显示所有的执行命令
keyma[  //展示所有快捷键
ctrl+c  //终止当前命令
ctrl+z  //挂起当前命令   bg/fg 重新支持此命令 或者kill掉
ctrl+a //回到行首
crtl+e //回到末尾


=====================

5.jvm 命令
dashboard  //仪表板

 


thread      //线程信息  参数:id  //查看线程     -n 3 //查看当前最忙的几个线程   -b  //找出当前线程阻塞其他线程的线程
  -i 200  //指定cpu采样的时间间隔毫秒 

--state waiting //查看所有等待的线程


jvm         //查看JVM虚拟机信息
sysprop    //查看和修改系统信息       sysprop KEY VALUE  //修改      sysprop KEY //查看
=====================
sysenv    //查看当前Java环境属性
vmoption   //查看JVM虚拟机参数     vmoption KEY VALUE  //修改   vmoption KEY //查看
getstatic   类名 属性  //查看静态的类和静态的属性   getstatic  demo.MathGame  random
ognl   express   -c  -x //ognl  语法     express  //执行的表达式   c: 执行表达式的类加载器,默认是系统类加载器  x num:结果对象展开层次
===========================
ognl '@demo.MathGame@random'  //获取静态属性
ognl '#value1=@System@getProperty("java.home"),#value2=@System@getProperty("java.runtime.name"),{#value1,#value2}'  
===========================
6.类和方法的命令
sc  // 搜索类和子类支持模糊匹配  参数:  类名 方法名  -d //输出类的详细信息     -E   //开启正则表达式匹配默认开启   -df  //输出类的成员变量信息    sc demo.*/sc -df demo.*
sm   //搜索类方法     参数:  类名 方法名  -d //输出方法的详细信息     -E   //开启正则表达式匹配;默认开启           sm 类名
jad          全类名   [方法] //字节码文件反编译      -E   //开启正则表达式匹配默认开启     jad --source-only demo.MathGame >/root/MathGame.java    编辑java 文件
mc            全路径/类名.java //源代码编译成字节码    -d 指定编译目录   //编译到           mc  /root/MathGame.java   -d  /root
redefine      类名.class//把新生的字节码在内存中运行                                       redefine /root/demo/MathGame.class
======================
7.高级命令
dump   //将已加载的字节码文件保存到 logs/arthas/classdump/  
参数:类名    
-c: 执行表达式的类加载器,默认是系统类加载器  
-E   //开启正则表达式匹配默认开启   
dump  java.lang.string
=========================
classload  //获取类加载器信息  
参数: -l /按类加载器进行统计   
-t  //打印所有类加载器继承树  
-a //列出所有类加载器加载的类谨慎使用  
 -c hashcopde //找类加载器在哪个jar包  
 -c hashcopde
 -r  java.lang.string   //获取某个资源在哪个jar包    
 -c hashcopde -load  java.lang.string  //加载一个类到内存中
========================
monitor   //监视指定类中方法的执行情况  
参数:类名 方法名   
-E//开启正则表达式匹配;默认开启   
-c 120  //统计周期   [c:],意思是统计周期(cycle of output),拥有一个整型的参数值    统计周期,默认值为120秒
monitor  demo.MathGame primeFactors -c 5
==============================
watch    //观察指定方法的调用情况   
参数:类名class-pattern 方法名 method-pattern
express //观察表达式   
condition-express //条件表达式   
-b //方法调用之前观察  
-e //方法异常之后观察
-s  //方法返回之后观察   
-f  //方法结束之后观察   
-E //正则    
-x //指定输出结果属性遍历深度 默认1   
-n 2 //执行次数  
watch   demo.MathGame primeFactors "{params,target,returnObj}"  -x 2  -b -s -n 2
=============================
trace //对方法内部路径进行追踪 并输出方法路径每个节点耗时  
参数:类名 方法名   
condition-express //条件表达式    
-n 2 //执行次数    
-E //正则   
'#cose' //耗时时间筛选    
trace  demo.MathGame primeFactors -n 2
trace  --skipJDKmethod false  demo.MathGame primeFactors -n 2  'cose>.5'


============================
stack  //输出当前方法被调用的路径  
参数:类名 方法名   
condition-express //条件表达式    
-n 2 //执行次数   
-E //正则
============================
tt  //时间隧道记录指定方法调用的入参和返回信息,并能对这些不同时间下调用的信息进行观测
参数: 类名 方法名
 -t  //记录某个方法在一段时间的调用
 -l         //显示所有已记录的列表
 -n  次数      //只记录多少次
 -s  表达式//搜索表达式
 -i  索引号//查看指定索引号的详细调用信息
 -p           //重新调用指定索引号时间碎片
===========================
options  //全局设置
===========================
profiler  命令  [命令参数]//火焰图  profiler start/list/getSamples/status/stop

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20岁30年经验的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值