天天看点

线上问题排查利器Arthas使用记录

线上问题排查利器Arthas使用记录

官方文档

安装

安装方式①

wget https://alibaba.github.io/arthas/arthas-boot.jar

java -jar arthas-boot.jar

打印帮助信息:

java -jar arthas-boot.jar -h

如果下载速度比较慢,可以使用aliyun的镜像:

java -jar arthas-boot.jar --repo-mirror aliyun --use-http

如果从github下载有问题,可以使用gitee镜像

wget https://arthas.gitee.io/arthas-boot.jar

安装方式②

使用as.sh

Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:

curl -L https://alibaba.github.io/arthas/install.sh | sh

上述命令会下载启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。

直接在shell下面执行./as.sh,就会进入交互界面。

也可以执行./as.sh -h来获取更多参数信息。

如果从github下载有问题,可以使用gitee镜像

curl -L https://arthas.gitee.io/install.sh | sh

打开

./as.sh或者java -jar arthas-boot.jar

查看cpu占用高的3个线程 类似top -H,但是能看到堆栈信息

thread -n 3

跟踪某个方法的调用时间【显示的条数】

trace 包名.类名 方法名 [-n 数字]

monitor命令可以监控方法的执行情况。

比如调用成功次数,失败次数,失败率、平均执行时间等等。默认120秒输出一次,也就是说,当我们输入monitor命令之后,每120秒就会输出一次统计结果。

#通过-c参数可以修改输出频率,支持通配符和正则表达式[多长时间输出一次]

monitor -c 5 包名.类名 方法名

进行获取执行方法的参数【参数第几个】然后获取数据【-n 1为只输出一条】

#$ watch 包名.类名 方法名 params[0].get(0).age -n 1

https://www.cnblogs.com/qiaoyihang/p/10533672.html

进行方法行为预测执行

timetunnel,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测,同时可回放该方法调用

tt -t 包名.类名 方法名

执行的系统环境变量

#sysprop和sysenv

#通过sysprop可以查看所有的系统变量,也可以设置某个系统变量。

#同理,通过sysenv可以查看所有的操作系统环境变量,也可以查看设置某个环境变量。

jvm

#通过jvm命令直接输出当前jvm的各种信息。

类的静态属性

#getstatic

#通过getstatic命令可以方便的查看类的静态属性。

ognl表达式

#ognl

#执行ognl表达式,可执行任意代码

二、命令列表

dashboard 当前系统的实时数据面板。

thread 查看当前线程信息,查看线程的堆栈。

jvm 查看当前JVM信息

sysprop 查看当前JVM的系统属性(System Property)

sysenv 查看当前JVM的环境属性(System Environment Variables)

getstatic 通过getstatic命令可以方便的查看类的静态属性。使用方法为getstatic class_name field_name

ognl 执行ognl表达式

sc 查看JVM已加载的类信息,这个命令支持的参数有 [d]、[E]、[f] 和 [x:]。

sm sm 命令只能看到由当前类所声明 (declaring) 的方法,父类则无法看到

dump dump 已加载类的 bytecode 到特定目录

jad 反编译指定已加载类的源码

classloader 查看classloader的继承树,urls,类加载信息

redefine 加载外部的.class文件,redefine jvm已加载的类。

monitor 方法执行监控,对匹配 class-pattern/method-pattern的类、方法的调用进行监控。

watch 方法执行数据观测,能方便的观察到指定方法的调用情况。

trace 方法内部调用路径,并输出方法路径上的每个节点上耗时。

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

tt 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息。

options 全局开关

Arthas的基础命令:

help——查看命令帮助信息

cls——清空当前屏幕区域

session——查看当前会话的信息

reset——重置增强类,将被 Arthas 增强过的类全部还原,Arthas 服务端关闭时会重置所有增强过的类

version——输出当前目标 Java 进程所加载的 Arthas 版本号

history——打印命令历史

quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响

shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出

keymap——Arthas快捷键列表及自定义快捷键

继续阅读