阿里巴巴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线上诊断工具