美文网首页问题定位技术
arthas学习_常用命令

arthas学习_常用命令

作者: Gauss_1777 | 来源:发表于2019-03-11 15:55 被阅读0次

    版本:3.0.5

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

    启动:

        进入目录

        运行 ./as.sh

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

    图 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学习_常用命令

        本文链接:https://www.haomeiwen.com/subject/dthktqtx.html