Arthas的使用

Arthas

1、将Arthas的作用

​ Arthas的功能包括进程状态查看、Java类、方法的查找和监控、异常信息分析、线程状态监控、JVM统计信息查看等。

而运维只需要将目标关注于监控异常信息分析线程状态监控JVM统计信息查看

​ Arthas对于java程序是毫无影响的。

2、Arthas的使用

2.1耗时操作查询(单机版)

2.1.1 Arthas启动
  • 启动Arthas工具(非全量安装)

    #命令行启动
    $ java -jar arthas-boot.jar
    
  • 启动成功后列出本地机器的所有java进程

    输入对应标号选择对应的java项目,图中所示进入标题为2的arthas-demo.jar项目

  • 另一种方式启动Arthas工具:通过java进程的pid,这样可以直接进入带对应的jar程序(非全量安装)

    #命令行启动
    $ java -jar arthas-boot.jar pid
    
  • 另一种方式启动Arthas工具:通过bat或者通过sh命令启动(全量安装)

    #Linux环境下,通过以下命令启动-仅提供linux下
    $ ./as.sh
    
  • 选择项目完成后会进入到Arthas操作命令行

    使用trace -E +包名 命令是可以查找出对应service包全部中的操作

    #使用trace命令查询某个方法内部调用路径
    $ trace -E com.test.ClassA|org.test.ClassB method1|method2|method3
    
2.1.2 查找耗时操作
1、dashboard :
  • 查看程序详细信息,dashboard命令可以查看cpu线程状态,内存信息、GC情况和jdk版本等信息
#dashboadr命令输出信息解读
ID: Java中的线程ID,注意这个ID不能跟jstack中的nativeID一一对应 
NAME: 线程名称 
GROUP: 线程组名称 
PRIORITY: 线程优先级, 1~10之间的数字,越大表示优先级越高 
STATE: 线程的状态 
CPU%: 线程消耗的cpu占比,采样间隔100ms,将所有线程在这100ms内的cpu使用量求和,再算出每个线程的cpu使用占比。
TIME: 线程运行总时间,格式为 分:秒 
INTERRUPTED: 线程当前的中断状态 
DAEMON: 是否是守护线程

​ 监控页面会实时刷新,默认每5000毫秒(5秒)刷新一次。可以通过 - i 参数指定刷新频率,-n 参数指定刷新次数。这个统计会有一定的开销,从截图中也可以看到arthas的cpu占比较大,所以刷新频率不要太高,建议5秒以上,刷新次数建议10次以内。

#每10秒刷新一次,3次后停止 
$ dashboard -i 10000 -n 3

注意!!!

​ 根据Arthas的使用指导,首先运行dashboard命令来检查系统状态,重点关注Memory部分的信息。这一步是为了排除内存使用满或GC频率过高导致的CPU升高。观察:

  • 内存使用情况:是否接近满载?
  • GC计数:频率是否异常高
2、Thread:
  • 查看当前线程信息,查看线程的堆栈

    参数说明

    参数名称 参数说明
    id 线程 id
    [n:] 指定最忙的前 N 个线程并打印堆栈
    [b] 找出当前阻塞其他线程的线程
    [i <value>] 指定 cpu 使用率统计的采样间隔,单位为毫秒,默认值为 200

    展示当前项目占用cpu最多的前N个线程:

    #打印当前项目中占用cpu最多的前3个线程
    $ thread -n 3
    

    假设:控制台输出如下信息

    "C1 CompilerThread
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值