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