示例
拉取java
wget https://alibaba.github.io/arthas/arthas-boot.jar
运行
java -jar arthas-boot.jar
输入序号进入进程
3
watch cn.cloudwalk.data.aggregate.mapper.device.DeviceEventStatusMapper getList "{params,returnObj}" -x 4
返回结果
使用
1.拉取运行arthas
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
2.获取java进程
jps -mlVv
或
ps -ef| grep java
3.基础命令
help——查看命令帮助信息
cat——打印文件内容,和linux里的cat命令类似
pwd——返回当前的工作目录,和linux命令类似
cls——清空当前屏幕区域
session——查看当前会话的信息
reset——重置增强类,将被 Arthas 增强过的类全部还原,Arthas 服务端关闭时会重置所有增强过的类
version——输出当前目标 Java 进程所加载的 Arthas 版本号
history——打印命令历史
quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响
shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
keymap——Arthas快捷键列表及自定义快捷键
JVM相关
dashboard:会显示出线程(按照cpu占用百分比倒排)、内存(堆空间实时情况)、GC情况等数据。
thread 命令用来查看当前jvm中的线程信息的
jvm查看当前jvm信息
sysprop查看和修改JVM的系统属性
sysenv查看JVM的环境变量
getstatic查看类的静态属性
class/classloader相关
mc:Memory Compiler/内存编译器,编译.java
文件生成.class
。
redefine加载外部的.class
文件,redefine jvm已加载的类。
sc Search class 查看jvm中已加载的类,不过直接执行sc并没有太多信息
sm search method
sh jad 反编译代码
classloader 查看classloader的继承树,urls,类加载信息
monitor/watch/trace相关
monitor
对匹配 class-pattern
/method-pattern
的类、方法的调用进行监控。
monitor
命令是一个非实时返回命令.
实时返回命令是输入之后立即返回,而非实时返回的命令,则是不断的等待目标 Java 进程返回信息,直到用户输入 Ctrl+C
为止。
watch
查看函数的参数、返回值、异常信息,如果有请求触发,就回打印对应的数据。
trace
方法内部调用路径,并输出方法路径上的每个节点上耗时
stack
输出当前方法被调用的调用路径