阿里巴巴arthas诊断工具使用介绍

Posted luffy5459

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里巴巴arthas诊断工具使用介绍相关的知识,希望对你有一定的参考价值。

    阿里推出的arthas诊断工具,是专门针对Java程序出现内存泄漏,CPU使用过高,线上问题运行错误进行诊断的工具。它的运行很简单,只需要下载一个arthas-boot.jar的工具包,然后通过java -jar arthas-boot.jar运行即可。一般是在程序执行有异常的那台机器上执行。环境自然是需要jdk支持的。

    这款工具在运行的时候,可以识别java进程,并且可以查看主线程,以及通过反编译查看某个类的源代码,因此在线上排查问题很方便。

   本文基本就是在官方文档的基础上照搬而来。算是自己学习的过程。

   下载arthas-boot.jar

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

    可以直接使用arthas提供的产生随机数的示例,这里也可以自己编写一个Java程序来测试。

    Hello.java

public class Hello 

   public static void main(String[] args)
     boolean flag = false;
     while(!flag)

     
     System.out.println("done.");
   

    编译 javac Hello.java,然后运行 java Hello。

    新开一个终端,运行arthas-boot.jar。

    这一步,会提示用户输入一个数字,默认输入1,指Hello这个java进程,如果有多个java进程,这里选择自己要观察的那个回车即可,之后进入arthas控制台。

 

     在控制台这里,可以输入很多命令,最基本的dashboard,thread,jad,分别是查看仪表盘,查看线程信息,反编译class看源码。

    输入dashboard之后的界面如下所示:

    在这个仪表盘上,可以看到一个id=1的线程是main主线程,接着,先ctrl+c退出仪表盘界面,可以输入thread 1,查看它的信息(这里的id=1与前面arthas启动之后提示的Hello进程序列号1不是一个意思):

    我们在线上排查问题,有可能发现代码不是我们提交到git仓库中的代码,这时候,需要我们反编译一下类信息,这里可以输入jad Hello:

    有了源码,自然就能知道是否是我们提交的代码,而不用盲目地排错。

以上是关于阿里巴巴arthas诊断工具使用介绍的主要内容,如果未能解决你的问题,请参考以下文章

Arthas使用教程 阿里巴巴开源项目史上最强java线上诊断工具

Arthas使用教程 阿里巴巴开源项目史上最强java线上诊断工具

初识阿里开源诊断工具Arthas

阿里人都在使用的在线诊断工具—Arthas

Arthas(阿尔萨斯)-java诊断工具-----来源于网络

Arthas在线java进程诊断工具 在线调试神器