Arthas教程

Linux环境安装

下载地址:https://alibaba.github.io/arthas/arthas-boot.jar

java -jar arthas-boot.jar   运行
quit   退出
stop  停止

Arthas快速入门

一.执行一个jar包
二.通过arthas来attach(黏附)
三.常用命令操作

诊断demo下载https://alibaba.github.io/arthas/arthas-demo.jar

1.启动demo的jar
java -jar arthas-demo.jar
2.启动arthas
java -jar arthas-boot.jar

Arthas命令

1.dashboard仪表板

dashboard

在这里插入图片描述

q 退出命令

2.通过thread命令来获取arthas-demo进程的Main Class

thread 命令

在这里插入图片描述

thread 1 查看ID为1的线程详细情况

在这里插入图片描述
3.通过jad来反编译Main Class

jad demo.MathGame  反编译包名.类名

在这里插入图片描述
4.watch监视(通过watch命令来查看函数的返回值)

watch demo.MathGame primeFactors returnObj   watch 包名.类名

在这里插入图片描述

q 退出

5.退出arthas命令

stop 完全退出命令,结束会话

基础命令之一

1.help
2.cat 打印文件内容
3.grep 匹配查找
4.pwd 返回当前的工作目录,和linux命令类似
5.cls 清空当前屏幕区域

sysprop | grep java -n 显示带java的行号
sysprop | grep java -m 10 显示带行号的前10行

基础命令之二

1.session 显示java进程pid,session_id 为会话id
在这里插入图片描述
2.reset 重置增强类,将被Arthas增强过的类全部还原,Arthas服务端关闭时会重置所有增强过的类
3.version 输出当前java进程所加载的Arthas版本号
4.history 列出执行过的命令
5.quit 退出当前Arthas客户端,不影响其他会话
6.stop 关闭Arthas,所有会话全部退出
7.keymap 显示快捷键

jvm相关命令

1.dashboard
仪表板 按q退出

2.thread

thread tid  显示某个id线程的信息
thread -n 3  显示最忙的3个线程并打印堆栈信息
thread -b 处于阻塞状态的线程
thread -i 1000 -n 3 每隔1000毫秒显示前3个最繁忙的线程
thread --state WAITING  查看所有处于等待的线程

3.jvm

jvm

thread相关
COUNT:JVM当前活跃的线程数
DAEMON-COUNT:JVM当前活跃的守护线程数
PEAK-COUNT:从jvm启动开始曾经活着的最大线程数
STARTED-COUNT:从jvm启动开始总共启动过的线程次数
DEADLOCK-COUNT:jvm当前死锁的线程数

4.sysprop 查看和修改JVM的系统属性

jvm相关命令之二

1.sysenv 查看所有环境变量

sysenv 

2.vmoption 查看jvm虚拟机的参数

vmoption 

在这里插入图片描述

3.getstatic 类名 属性名 查看类的静态属性

getstatic demo.MathGame random     getstatic 类名 属性名      

4.ognl 同getstatic作用,有特定语法

Arthas高阶命令

dump 将已加载的字节码文件保存到特定目录

dump java.lang.String

classloader

classloader  查看所有的类加载器

monitor 监视指定类中方法的执行情况

monitor demo.MathGame primeFactors -c 5   monitor  包名.类名  方法名  每隔5秒

在这里插入图片描述
watch 观察指定方法的调用情况

watch定义了4个观察点,即-b 方法调用前,-e 方法异常后,-s 方法返回后,-f 方法结束后
4个观察事件点-b,-e,-s默认关闭,-f默认打开,在相应事件点会对观察表达式进行求值并输出

watch demo.MathGame primeFactors "{params,returnObj}" -x 2    查看 包名.类名 方法名  "{入参,返回值}"  深度为2

在这里插入图片描述

watch demo.MathGame primeFactors "{params,returnObj}" -x 2 -b    观测方法执行前的入参

在这里插入图片描述

watch demo.MathGame primeFactors "target" -x 2 -b     获取对象的属性

在这里插入图片描述

watch demo.MathGame primeFactors "target.illegalArgumentCount" -x 2 -b    获取对象illegalArgumentCount的属性信息

在这里插入图片描述

watch demo.MathGame primeFactors "{params,target,returnObj}" -x 2 -b -s -n 2   方法前,方法后返回入参,对象,出参信息,执行两次(-n 执行次数)

在这里插入图片描述

watch demo.MathGame primeFactors "{params[0],target}" "params[0]<0"   条件过滤,第一个入参参数小于0的信息

在这里插入图片描述
trace 对方法的内部调用路径,耗时进行输出。OGNL表达式使用。

trace demo.MathGame run -n 2   输出run方法的追踪信息  输出2次

在这里插入图片描述
ts:执行事件
thread_name:线程名称
红色:消耗资源较高的方法

stack 输出当前方法被调用的调用路径

stack demo.MathGame primeFactors    查看primeFactors方法的调用顺序

在这里插入图片描述

stack demo.MathGame primeFactors "params[0]<0" -n 2    查看primeFactors方法的调用顺序,过滤条件第一个参数小于0
stack demo.MathGame primeFactors "#cost>0.5" -n 2     查看primeFactors方法的调用顺序,过滤条件消耗事件大于0.5秒

tt 记录指定方法调用的入参和返回信息

tt -t demo.MathGame primeFactors

在这里插入图片描述

 tt -i 1001   调用1001,返回详细信息

在这里插入图片描述

options 全局选项

profiler 火焰图对CPU进行采样

profiler start  启动命令
profiler list 查看支持的事件
profiler getSamples  获取样本数
profiler stop  停止,会生成样本图
profiler stop  --format html    停止,生成指定格式的火焰图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值