Arthas(阿尔萨斯)使用
1、背景
当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,可使用top,查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof ,这里主要介绍Arthas(阿尔萨斯)。
2、Arthas 介绍
Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。
开源地址:https://github.com/alibaba/arthas
官方文档:https://alibaba.github.io/arthas

3、Arthas 使用场景
得益于 Arthas 强大且丰富的功能,让 Arthas 能做的事情超乎想象。下面仅仅列举几项常见的使用情况,更多的使用场景可以在熟悉了 Arthas 之后自行探索。
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到 JVM 的实时运行状态?
- 为什么 CPU 又升高了,到底是哪里占用了 CPU ?
- 运行的多线程有死锁吗?有阻塞吗?
- 程序运行耗时很长,是哪里耗时比较长呢?如何监测呢?
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现?
4、 Arthas 如何使用
4.1 安装
安装的方式有好几种:
- 直接下载一个可以启动的jar包然后用java -jar的方式启动
- 用官方提供的as.sh脚本一键安装
- 用rpm的方式安装
本篇介绍第一种方式,因为它简单而且想迁移的时候也超级方便(毕竟只需要把下载的jar包拷贝走就行了)。
可以在官方 Github 上进行下载,有时打不开。
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
如果速度较慢,可以尝试国内的码云 Gitee 下载。
curl -O https://arthas.gitee.io/arthas-boot.jar
本文介绍在windows环境下如何使用arthas,linux下大同小异。
在浏览器中直接输入https://arthas.gitee.io/arthas-boot.jar,下载arthas-boot.jar包。

4.2 demo


本地运行程序,我这里随便写了一个查询人名的demo,同时启动一个线程,运行程序。
4.3 启动Arthas
打开cmd终端,切换到放arthas-boot.jar的路径,输入
java

Arthas是一款由Alibaba开源的Java诊断工具,适用于线上问题排查和性能监控。本文介绍了Arthas的安装、使用场景、基本操作,如CPU占用、死锁、内存泄漏的排查,并演示了thread、dashboard、watch等命令的使用,帮助开发者快速定位和解决问题。

1万+

被折叠的 条评论
为什么被折叠?



