arthas学习_常用命令

版本:3.0.5

我的路径:在项目同级目录下

启动:

    进入目录

    运行 ./as.sh

    选择所需要监控的进程,如图:输入1-9后回车

arthas学习_常用命令_第1张图片
图 1

1、面板查看:dashboard

    详细说明:https://alibaba.github.io/arthas/dashboard.html

2、查看当前线程信息,查看线程的堆栈:thread

    thread pid 显示指定线程的运行堆栈

    thread -n pid 指定最忙的前N个线程并打印堆栈

    thread -b 找出当前阻塞其他线程的线程

    thread -i  指定采样时间间隔 (如:thread -n 3 -i 1000,每秒统计最忙的前三个线层)

3、查看当前JVM信息:jvm

    THREAD相关:DEADLOCK-COUNT: JVM当前死锁的线程数

4、查看JVM已加载的类信息:sc (好奇怪,跟预期不符合)

5、方法执行数据观测:watch

    详细说明:https://alibaba.github.io/arthas/watch.html

    使用案例:

    PS:watch 命令定义了4个观察事件点,即 -b 方法调用前,-e 方法异常后,-s 方法返回后,-f 方法结束后

    <1> 查看EXXXAction 类的doSearch 方法的返回值

    watch com.XXXAction doSeaXXXrch returnObj

    <2>查看EXXXAction 类的doSearch 方法的出参和返回值(-x表示参数结构的嵌套深度,测试的时候发现太深也是看不了,例如返回的page里的data)

    watch com.XXXAction doSearch "{params,returnObj}" -x 2

6、方法执行监控:monitor(与watch不同,watch注重参数,而monitor注重成功失败及耗时)

    详细说明:https://alibaba.github.io/arthas/monitor.html

    使用案例:

    <1>每5秒检测该类的方法

    monitor -c 5  com.XXXAction doSearch

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

    详细说明:https://alibaba.github.io/arthas/trace.html

    使用案例:

    <1>trace com.XXXAction doSearch

    <2>trace com.XXXServiceImpl query

    像这样一层一层追踪耗时在哪里

8、输出当前方法被调用的调用路径(当前方法是从哪里被调用):stack

    详细说明:https://alibaba.github.io/arthas/stack.html

    使用案例:

    <1>stack com.XXXServiceImpl query

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

    jad java.lang.String

    jad --source-only demo.MathGame

10、清空当前屏幕区域:cls

11、退出arthas:quit或者exit

如果只是退出当前的连接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。

如果想完全退出arthas,可以执行shutdown命令。

你可能感兴趣的:(arthas学习_常用命令)