Arthas简单使用介绍

一、简介

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

二、下载

Download | arthas

有两种方式,一种是从Maven下载,另外一种是从github下载,从Maven下载更快

三、使用

官网快速入门文档 快速入门 | arthas

  • 解压压缩包,找到arthas-boot.jar

  • 在终端运行 java -jar arthas-boot.jar

  • 如果有运行的java进程,会出现选择界面

输入对应的数字即可绑定该进程,进入arthas的命令行界面

  • 监控方法参数返回

watch demo.MathGame primeFactors '{params,returnObj}' -x 2

demo.MathGame 类名

primeFactors 方法名

'{params,returnObj}' 参数和返回结果

-x 2 表示展开的层次,默认是1

作用:实时监控线上运行的入参、结果。有时候,我们的代码并不是所有的方法都会打印输入输出的日志,这时候arthas就可以给我们解决问题,特别是在项目跨团队合作时,可以解决很多扯皮问题。

  • 反编译

  • jad 需要反编译的类路径

    比如 jad com.dh.test.MathGameTest

作用:在没版本确认自己的代码是否上到环境,或者是版本不知道是否正确,又没法拿到线上代码时,就可以使用这种方式

这里附上我测试使用的代码,这里的MathGame,是Arthas下载zip里面的一个demo程序,可以在IDEA中,添加这个jar到自己的依赖path目录

public class MathGameTest {

    public static void main(String[] args) throws InterruptedException {
        MathGame game = new MathGame();
        while(true) {
            game.run();
            TimeUnit.SECONDS.sleep(5L);
        }
    }

}

  • 查看系统当前内存、CUP占用等状态

    dashboard

    作用:系统性能监控

  • 生成dump文件

    headdump

    作用:生成dump文件,协助分析oom问题

  • 在线修改文件 redefine myClass.class

    作用:不需要重启,就可以修改运行的程序的class文件。有的时候,我们的项目并不能一直重启。

  • 追踪访问时间链路

package com.dh.test;

public class CallTest {

    public static void main(String[] args) throws InterruptedException {
        while (true){
            methodA();
        }
    }

    private static void methodA() throws InterruptedException {
      Thread.sleep(1000);
      methodB();
    }

    private static void methodB() throws InterruptedException {
        Thread.sleep(2000);
        methodC();
    }

    private static void methodC() throws InterruptedException {
        Thread.sleep(3000);
    }

}

这里我们创建一个类,死循环调用,不让程序down掉。

methodA (模拟程序耗时1秒) -> methodB(模拟程序耗时2秒) -> methodC (模拟程序耗时3秒)

在arthas命令行界面,执行命令 trace com.dh.test.CallTest methodA

可以看出这里,methodA耗时6秒,但是有83%的时间都是调用methodB耗时的。

如果需要继续追踪B的耗时细节,可以仿照前面的命令,修改方法名,继续追踪methodB的耗时

  • 生成火焰图

        作用:查看程序运行耗时,分析性能问题

        profiler start  开始生成火焰图

        profiler getSamples  获取火焰图样本

        profiler status  火焰图生成状态        

        profiler stop --format html  结束生成火焰图,并以html保存

结束后,自动输出到指定目录 profiler out file:指定的路径

  • 更多命令

    Arthas所有的命令都可以在使用时,加上help查看。比如 watch -help

    或者查看官方文档快速入门 | arthas

  • 命令行管理界面网页版

http://localhost:3658/

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值