使用阿里Arthas在线排查JAVA问题

Arthas

Arthas(阿尔萨斯)是Alibaba开源的一个Java诊断工具无需做任何配置就可以直观的获取各种维度的性能数据方便开发者进行问题的定位和诊断

应用场景

动态跟踪Java代码

实时监控JVM状态

查看系统的运行状况

在线排查问题,无需重启

快速定位应用热点生成火焰图

适用范围

适用于JAVA诊断支持JDK 6+可运行在Linux/Mac/Winodws系统

Arthas部署使用

Centos7.7系统为例

(一)部署JAVA环境

Arthas需要使用到JAVA环境可通过RPM包快速安装JDK

JDK下载地址:(选择相应的RPM包下载即可)

https://www.oracle.com/technetwork/java/javase/downloads/index.html

执行yum install 安装包名称 -y开始安装JDK

查看JAVA环境是否安装成功执行 java -version返回版本信息即表示成功

(二)下载Tomcat

Arthas会自动检测服务器上运行的JAVA进程所以我们运行Tomcat作为JAVA进程进行模拟学习

Tomcat下载地址(这里选择下载的是tar.gz格式的压缩包)

https://tomcat.apache.org/download-90.cgi

[root@bogon ~]# tar -zxf apache-tomcat-9.0.29.tar.gz  #解压下载的包
[root@bogon ~]# cd apache-tomcat-9.0.29
[root@bogon apache-tomcat-9.0.29]# cd bin/
[root@bogon bin]# ./startup.sh  #启动Tomcat

(三)Arthas部署及其使用

Arthas下载地址: https://alibaba.github.io/arthas/arthas-boot.jar 
运行方式:
(1)先运行arthas,再选择需要排查的java进程PID
java -jar arthas-boot.jar
命令执行后会进入arthas交互模式,界面会列出当前系统中运行着的java进程pid,选择需要监测的PID即可
(2)运行arthas时,同时指定JAVA进程PID
java -jar arthas-boot.jar PID

执行dashboard会展示当前进程的信息

执行thread -n 3查看3线程最cpu

 

查看CPU占用最高的线程。例如以下就是说明Arthas.java文件的24行有问题(cpuHigh是我自定义的一个函数名)

执行classloader查看当前系统中有多少类加载器以及每个加载器加载的类数量帮助判断是否有类加载器泄露

 

(3)常用命令

下面列举一些 Arthas 的常用命令,看到这里你可能还不知道怎么使用,别急,后面会一一介绍。

命令 介绍
dashboard    当前系统的实时数据面板
thread       查看当前 JVM 的线程堆栈信息
watch        方法执行数据观测
trace         方法内部调用路径,并输出方法路径上的每个节点上耗时
stack      输出当前方法被调用的调用路径
tt        方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
monitor     方法执行监控
jvm       查看当前 JVM 信息
vmoption    查看,更新 JVM 诊断相关的参数
sc       查看 JVM 已加载的类信息
sm      查看已加载类的方法信息
jad       反编译指定已加载类的源码
classloader   查看 classloader 的继承树,urls,类加载信息
heapdump   类似 jmap 命令的 heap dump 功能

(4)web console

Arthas 目前支持 Web Console,在成功启动连接进程之后就已经自动启动,可以直接访问 http://127.0.0.1:8563/ 访问,页面上的操作模式和控制台完全一样。

使用建议

可以考虑对所有安装java程序的服务器安装arthas,在跳板机上访问对应webconsole确定和排查问题

 

更多命令请访问https://alibaba.github.io/arthas/quick-start.html

本文参考链接:
https://blog.csdn.net/u013735734/article/details/102930307#comments

https://alibaba.github.io/arthas/index.html

https://blog.csdn.net/xiao_jun_0820/article/details/82774796

posted on 2019-12-12 15:04  标配的小号  阅读(2421)  评论(0编辑  收藏  举报

导航