ArthasJava线上问题定位处理的终极利器

编程

前言
在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用 Arthas 轻松定位,迅速解决,及时止损,准时下班。

1、Arthas 介绍
Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+, 采用命令行交互模式,提供 Tab 自动不全,可以方便的定位和诊断线上程序运行问题。截至本篇文章编写时,已经收获 Star 17000+。

Arthas 官方文档十分详细,本文也参考了官方文档内容,同时在开源在的 Github 的项目里的 Issues 里不仅有问题反馈,更有大量的使用案例,也可以进行学习参考。( https://alibaba.github.io/arthas/)

开源地址:https://github.com/alibaba/arthas

官方文档:https://alibaba.github.io/arthas

2、Arthas 使用场景
得益于 Arthas 强大且丰富的功能,让 Arthas 能做的事情超乎想象。下面仅仅列举几项常见的使用情况,更多的使用场景可以在熟悉了 Arthas 之后自行探索。
是否有一个全局视角来查看系统的运行状况?
为什么 CPU 又升高了,到底是哪里占用了 CPU ?
运行的多线程有死锁吗?有阻塞吗?
程序运行耗时很长,是哪里耗时比较长呢?如何监测呢?
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
有什么办法可以监控到 JVM 的实时运行状态?

3.1 安装

可以在官方 Github 上进行下载,如果速度较慢,可以尝试国内的码云 Gitee 下载。

# github下载
wget https://alibaba.github.io/arthas/arthas-boot.jar
# 或者 Gitee 下载
wget https://arthas.gitee.io/arthas-boot.jar
# 打印帮助信息
java -jar arthas-boot.jar 
注意:运行这个jar时,会列出来 该机器上的所有java进程,自己可以选择一个编号回车

--target-ip 192.168.177.1   这个参数的意思是运行该jar 同时,外面访问该arthas控制台,通过此ip访问(端口默认8563),如果不指定ip,默认访问的arthas的地址为127.0.0.1:8563   外部是访问不了的。(可以理解为将arthas控制台运行在该ip上,【arthas必须与运行的应用】在同一台机器上),外部通过访问该IP进行访问arthas控制台)

如图,只检测到1个   [1]java进程 

输入1  再回车

arthas 已经启动完毕!

help可以查看命令

也可以在外部直接通过浏览器访问,并操作!(可以通过外部浏览器访问,也可以通过以上通过help里的名字在运行arthas那台机器上直接访问)

具体命令详解 访问  : https://alibaba.github.io/arthas/

常用命令

例如:dashboard 就能查看 jvm  各参数指标

以上是 ArthasJava线上问题定位处理的终极利器 的全部内容, 来源链接: utcz.com/z/518576.html

回到顶部