Java问题排查工具Arthas入门教程
什么是阿里Arthas?

 在生产环境经常遇到大量的日志,同时还有一些性能问题,需要进行进程分析,排查,有时候确实比较花时间,所以可以借助一些开源的框架来实现,Arthas,是阿里开源的一款Java诊断工具,可以实时查看应用 load、内存、gc、线程的状态信息,遇到接口异常,可以在不修改代码的情况,分析业务代码问题,查看方法调用的出入参、异常,监测方法执行耗时,类加载信息,提升线上问题排查效率。
GitHub地址:https://github.com/alibaba/arthas
 码云地址:http://arthas.gitee.io/
Arthas的作用
可以查看官网的文档,链接:https://arthas.gitee.io/doc/,图来自官方文档:
 
环境准备
在安装之前先确保有安装好jdk,如果没安装,先简单安装一下jdk,注意jdk必须jdk6+,官网也有说明
Oracle官网下载jdk8:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

ps:可以使用xftp在本地下载jdk,或者使用命令curl -O url下载
- 解压文件
 
 tar -zxvf jdk-8u261-linux-i586.tar.gz
 

- 设置环境变量
设置环境变量vi编辑 vi /etc/profile profile文件加入如下配置,如何按esc退出,:wq!保存 
export JAVA_HOME=/usr/java/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib
 
- 让修改生效
 
source /etc/profile
 
- 验证jdk有效性
 
 java -version
 
Arthas的安装过程
参考官网对Arthas进行安装,发现有遇到一些问题,处理好之后,做一下分享:
先将对应的arthas程序下载到本地,可以使用wget命令,也可以使用官网介绍的curl访问对应链接
wget https://arthas.aliyun.com/arthas-boot.jar
 
然后安装文档,启动对应的jar
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
 
发现启动时候报错了,报错如下所示:
Can not find java process. Try to run `jps` command lists the instrumented Java HotSpot VMs on the target system.
Please select an available pid.
 
如图所示:
 
 原因是因为要加上对应的线程id,但是我们没有运行对应的Java程序,所以可以去官网下载一个Java程序的例子math-game.jar

 然后先java -jar math-game.jar,运行对应的Java程序
查看运行的Java程序:
ps -aux|grep java
 
可以找到math-game.jar对应的pid是2266,所以现在再执行
java -jar /usr/local/arthas/arthas-boot.jar 2266
 

可以看到进到对应的进程里,输入命令dashboard,查看实时数据面板
 
- ID:Java级别的线程ID
 - NAME:线程名
 - GROUP:线程组名
 - PRIORITY:线程优先级, 1~10之间的数字,越大表示优先级越高
 - STATE:线程的状态
 - CPU%:线程消耗的cpu占比
 - TIME:线程运行总时间,数据格式为分:秒
 - INTERRUPTED:线程当前的中断位状态
 - DAEMON:是否是daemon线程
 



















