Arthas 超简单离线使用教程

简介

  • Arthas 是阿里巴巴开源的一套监控java应用的工具
  • 官网的文档地址: https://arthas.aliyun.com/doc/
  • 官方的简介说明:
  • Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
怎么快速定位应用的热点,生成火焰图?
怎样直接从JVM内查找某个类的实例?

下载

  • 建议下载全量包,避免仅下载boot无网络情况下无法使用
    https://arthas.aliyun.com/download/latest_version?mirror=aliyun
  • 2022.3.22时最新的版本是 3.5.6

简单使用

  • 注意这里仅介绍一些基本的使用(复杂的我还没学习)
  • 第一次安装和启动
打开命令
注意1: 需要使用一个安装比较完整的jdk, 如果仅是jre可能无法运行
比如我这边的jdk的安装路径为
/myapp/server/runtime/java/x86_64linux/bin/java
那么我就可以如此运行
1. 将压缩包上传到某一个路径,并且解压缩: 
比如我这边上传到了 /arthas/目录.
2. 执行命令为:
/myapp/server/runtime/java/x86_64linux/bin/java  -jar /arthas/arthas-boot.jar --target-ip 10.110.83.xx 
注意: 可以直接使用jdk全路径的java 二进制文件执行 -jar 命令
注意: 可以直接使用 --target-ip 的方式暴露一下 arthas的端口出来. 默认为 3658 
注意: 打开 3658的防火墙(建议仅打开部分,不要全部打开,避免安全问题)

简单使用

  • 启动命令的效果
[root@centos7ver2009 ~]# /myapp/server/runtime/java/x86_64-linux/bin/java -jar arthas-boot.jar --target-ip 10.110.83.113
[INFO] arthas-boot version: 3.5.3
[INFO] Process 4318 already using port 3658
[INFO] Process 4318 already using port 8563
[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 4318 ./server/runtime/caf-bootstrap.jar
  [2]: 8034 sun.tools.jconsole.JConsole
  [3]: 4406 ./dmp-datafactory.jar
  [4]: 4615 ./runtime/rtf-operations-management-bootstrap.jar
  [5]: 4317 ./runtime/rtf-operations-management-bootstrap.jar
1
[INFO] arthas home: /root/.arthas/lib/3.5.6/arthas
[INFO] The target process already listen port 3658, skip attach.
[INFO] arthas-client connect 10.110.83.113 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          

wiki       https://arthas.aliyun.com/doc                                        
tutorials  https://arthas.aliyun.com/doc/arthas-tutorials.html                  
version    3.5.6                                                                
main_class                                                                      
pid        4318                                                                 
time       2022-03-22 08:08:40 

简单使用

  • 注意可以使用网页端也可以实名 shell 进行处理. 如果有堡垒机比较复杂,建议可以打开端口使用网页进行监控
  • 注意arthas监控会造成一定程度的性能下降.强烈不建议用于高压力的高峰时段生产环境
  • 打开网页 比如我这边就是 http://10.110.83.xx:3658
  • 效果图为:
    image
  • 可以直接在黑框里面输入命令进行调试

重要命令介绍

help
打印命令帮助
dashboard 
会展示 线程和内存信息.
cls
清空已有的内容
thread 
显示所有的进程信息
thread -b 
打印被锁的进程
thread -n 10 
打印占用CPU最多的十个进程
jvm
打印java的信息
profiler start / profiler stop
打印火焰图, 有一个默认转储的路径.
sysprop
打印jvm相关参数信息
posted @ 2022-03-22 08:28  济南小老虎  阅读(1889)  评论(0编辑  收藏  举报