• arthas 使用教程


    第一步:首先是安装,说白了其实把他当成一个工具来用就行了,你什么服务需要在线进行性能情况的一个监测和性能的瓶颈排查。首先下载一个他的jar包,下面是jar包的地址:

     https://arthas.aliyun.com/arthas-boot.jar

    第二步:把jar包上传到你需要进行java性能监测的服务器上。

    第三步:启动 arthas-boot.jar ,启动的时候要注意 :你需要监测的java是启动的可以用jps -l 命令查看你的java服务。启动执行的命令如下:

    1. [root@localhost script]# java -jar arthas-boot.jar --启动命令
    2. [INFO] arthas-boot version: 3.6.3
    3. [INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
    4. * [1]: 9097 -- process information unavailable
    5. [2]: 23515 psf-datalake-metadata-0.0.1-SNAPSHOT.jar
    6. [3]: 8683 psf-datalake-share-0.0.1-SNAPSHOT.jar
    7. 2 --选择你要监测的java服务 回车
    8. [INFO] arthas home: /root/.arthas/lib/3.6.2/arthas
    9. [INFO] Try to attach process 23515
    10. [INFO] Attach process 23515 success.
    11. [INFO] arthas-client connect 127.0.0.1 3658
    12. ,---. ,------. ,--------.,--. ,--. ,---. ,---.
    13. / O \ | .--. ''--. .--'| '--' | / O \ ' .-'
    14. | .-. || '--'.' | | | .--. || .-. |`. `-.
    15. | | | || |\ \ | | | | | || | | |.-' |
    16. `--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
    17. wiki https://arthas.aliyun.com/doc
    18. tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
    19. version 3.6.2
    20. main_class
    21. pid 23515
    22. time 2022-08-02 08:28:33
    23. [arthas@23515]$ --表示启动成功可以输入命令进行查看

    以上就是启动服务了 下面开始介绍常用的一些排查命令

    1.dashboard命令

    查看的是java服务在cpu/内存/gc运行的一个情况,ctrl+c可以退出监控程序

    数据说明:

    属性描述
    IDJava级别的线程ID,注意这个ID不能跟jstack中的nativeID一一对应
    NAME线程名
    GROUP线程组名
    PRIORITY线程优先级, 1~10之间的数字,越大表示优先级越高
    STATE线程的状态
    CPU线程的cpu使用率。比如采样间隔1000ms,某个线程的增量cpu时间为100ms,则cpu使用率=100/1000=10%
    DELTA_TIME上次采样之后线程运行增量CPU时间,数据格式为秒
    TIME线程运行总CPU时间,数据格式为分:秒
    INTERRUPTED线程当前的中断位状态
    DAEMON是否是daemon线程

    2.thread命令

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

    参数说明:

    参数名称参数说明
    id线程id
    -n 前N个指定最忙的前N个线程并打印堆栈
    b找出当前阻塞其他线程的线程
    200指定cpu使用率统计的采样间隔,单位为毫秒,默认值为200
    --all显示所有匹配的线程

     

    2.1 thread 29

    根据id查看更加详细信息

     

    2.2 thread -n 3

     打印出最忙的前3个线程堆栈

    3.trace 命令 

    获取方法内部调用路径,并且输出每个执行节点的执行时间,方便排查执行慢的方法和类。

    参数说明:

    参数名称参数说明
    class-pattern类名表达式匹配
    method-pattern方法名表达式匹配
    condition-express条件表达式

    执行命令 trace demo.MathGame * 

     

     线上正式环境把他当成一个排查慢问题的工具还是很好用的。

  • 相关阅读:
    【Android】Binder的Oneway拦截
    Ardupilot Rpanion iperf网络性能测试
    vue实现带有横向和纵向双表头
    必须要会回答的Java面试题(字符串篇)
    电池管理系统(BMS)的进化与分类
    Spring:现代Java开发的必备框架
    合格vue开发者应该知道的面试题
    Python 比较出2个list中相同的内容,忽略大小写
    【C语言基础】结构体中内嵌联合体|联合体中内嵌结构体
    【算法|动态规划No.16】leetcode931. 下降路径最小和
  • 原文地址:https://blog.csdn.net/qq_19524879/article/details/126116050