Arthas阿尔萨斯的使用安装详细教程
- 一、阿尔萨斯能解决什么什么问题
- 二、安装与命令
- 三、实际应用
- 四、自学途径
本篇文章是自学B站“御风大世界”视频的提炼和总结。
原视频见:Arthas使用教程

一、阿尔萨斯能解决什么什么问题
alibaba出品线上JVM监控诊断利器
1、是一个全局JVM运行时监控工具,实现了 CPU,线程,内存,堆栈信息等监控。
2、CPU飙高,可以快速定位是什么原因造成的。
3、接口没反应、卡住了,定位是不是死锁。
4、CTO说你们这个接口太慢了,要优化一下,可以准确找出耗时的代码。
5、我写的代码没有执行,是部署的分支不对,还是我压根没提交?
6、线上有一个低级错误,改起来很简单,能不能在不重启应用的情况下, 进行类替换, 热部署。
二、安装与命令
1.arthas 如何安装?
Arthas下载地址
比如我们下载到F盘,共享或者发送给linux

2.arthas 启动
启动前先运行Java程序,我们写了一个死循环
运行程序
@Test
public void test2() throws InterruptedException {
while (true) {
Thread.sleep(1000);
System.out.println(123);
}
}
JVM配置如下:
-Xms10m -Xmx10m
图示如下:

注意:这里不一定非要启动main方法,只需要打开IDEA即可。
之后在arthas下载路径输入cmd,之后输入如下命令:建议模拟服务器环境用Linux进行如下的所有操作
java -jar arthas-boot.jar

这里我们输入1,会下载Arthas,这里注意1是打不开的,会报连接失败,因为IDEA占用了那个端口,所以我们选择3

通过help指令可以看到操作方式

dashboard 命令展示
输入
dashboard -h
如图,会列举其用法

输入指令,
解决问题1:实现了 CPU,线程,内存,堆栈信息等监控。
dashboard

输入指令
thread

查看某个具体的线程
thread 线程ID

指令:查看反编译当前类,查看内容
jad 类名

IDEA中下载插件arthas idea

想对某个方法进行Arthas的调用,可以右键选择,watch

这时候,命令到了剪切板之中,去命令行中右键粘贴即可。

回车后就可以抓到了

trace是对耗时的分析

会深入到方法内部,方法比较慢会标红高亮

stack是调用栈

可以看条件分支

monitor是对方法级别的监控

做压测的时候观测

三、实际应用
首先用命令
dashboard
查看空间使用情况,发现noheap内存和元空间占用率很高

某个线程的CPU使用率达到了90%多

进阶着使用命令,找出CPU利用率高的前5个线程
thread -n 5
定位到死循环的类

查看死锁的方式
thread
定位到2个死锁

使用指令
thread -b

时空隧道功能:重放请求
tt -t 全类名 方法名

使用指令
tt -i 索引
可以查看某个索引的请求

我们通过如下指令复现请求
tt -i 索引 -p

热力图:
profiler start
过一会儿
profiler stop

访问路径会看到一个热力图

四、自学途径
官网文档
github用户案例














![[1.2]计算机系统概述——操作系统的发展与分类](https://img-blog.csdnimg.cn/img_convert/4160c972bfa7bb4a79dfb5481b711580.png)



