1. arthas下载与安装
官网下载安装 / curl 安装均可
此处是官网下载后,upload到虚拟机中即可
2. 启动 arthas
2.1 进入到 安装包 目录
2.2 输入命令启动 arthas
java -jar arthas-boot.jar
2.3 arthas自动列出当前服务器上的所有运行的项目的进程ID
2.4 选中想要监测的进程ID,监控即可
3. help 查看支持的命令操作
4. 火焰图采集和查看
# 火焰图启动命令:
profiler start
开始采集后,可以postman或者其他方式请求相关接口即可
# 火焰图停止采集命令:
profiler stop
停止采集后,进入到对应的目录中找到 html 即可,可下载到 本地windows 上,点击查看即可,也可以通过 ip+3658端口,访问到对应的 火焰图
监测完成后,输入quit或者exit都可以,即可关闭掉阿尔萨斯的服务
5. 火焰图
Ctrl + F可以检索到自己需要监测的接口或者方法名,可查看到具体火焰图的示意图
6. Other
火焰图的使用
基本上步骤如下:
1.在服务器上下载好项目包(直接官网下载即可:Releases · alibaba/arthas)
2.下载后参照对应的命令,直接可以运行起来阿尔萨斯的服务,启动后会自动监测到服务器上跑了多少服务,也会将每个服务的进程ID打印出来,以供选择,进而启动阿尔萨斯服务后,选择对应的项目进程ID,即可开始监测到项目的情况
3.火焰图,直接启动对应的命令即可,启动后,发送postman或者线上web界面请求一下自己想要监测性能的服务,而后停止火焰图采集统计,自动生成的 html 火焰图会生成在对应的文件夹中,下载到自己的电脑桌面即可
4.打开后即可查看到上图的图片
5.性能分析:通过Ctrl+F,查找到自己想要检测的接口,找到对应的火焰图部分,点击进去,即可查看到对应的情况
其他:windows本地启动项目不管用,因为阿尔萨斯仅支持mac或者linux启动,才能使用火焰图功能,其他的功能应该可以正常使用
正确的操作流程最好是搞一个项目的jar包,单独启动一个服务,然后访问到对应的服务器上,直接postman调用(这里有一个问题,如何访问到固定IP上的服务,我们这边是本地cmd+invoke+dubbo接口,即可直接请求),这样能保证火焰图上只有自己想要监测接口的数据采集,否则也会采集到其他的服务的性能数据采集,但是总归是不影响的,也可以直接通过检索接口名称,找到自己想要监测的接口的性能
如何看火焰图:
阿尔萨斯按照方法名,还有横向的长度来看的,越长,这个方法就越底层,通过查看每一行的数据占比,即方法运行的耗时占比,进而可以排查到哪些方法比较耗时