Arthas
2021-04-05 17:59:21 1 举报
AI智能生成
Arthas 使用,线上debug
作者其他创作
大纲/内容
官网
https://arthas.aliyun.com/doc
用途
1、Jvm
2、线上 debug
3、全局视角来查看系统
4、快速定位应用的热点,生成火焰图
启动
jar启动
java - jar arthas-boot.jar
docker启动
第一次启动
- 查看docker容器的workdir(Path):docker inspect
- 启动(下载 -c 复制到容器内启动):docker exec -it 容器id Path -c "wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar
后续启动
- 进入容器:docker exec -it 容器id Path
- 启动:java - jar arthas-boot.jar
常用命令
1、dashboard :当前系统实时数据面板
参数
-i:刷新实时数据的时间间隔 (ms),默认5000ms
-n:刷新实时数据的次数
截图
2、thread:查看当前线程信息,查看线程的堆栈
参数
id:指定线程
-n:指定最忙的前N个线程并打印堆栈
-b:找出当前阻塞其他线程的线程
-i:列出指定ms内最忙的3个线程栈,默认200ms
–state:查看线程的状态
3:jvm
THREAD相关
- COUNT: JVM当前活跃的线程数
- DAEMON-COUNT: JVM当前活跃的守护线程数
- PEAK-COUNT: 从JVM启动开始曾经活着的最大线程数
- STARTED-COUNT: 从JVM启动开始总共启动过的线程次数
- DEADLOCK-COUNT: JVM当前死锁的线程数
文件描述符相关
- MAX-FILE-DESCRIPTOR-COUNT:JVM进程最大可以打开的文件描述符数
- OPEN-FILE-DESCRIPTOR-COUNT:JVM当前打开的文件描述符数
4、sysenv:查看当前JVM的环境属性
5、vmoption:查看,更新VM诊断相关的参数
查看
vmoption:查看所有诊断参数
vmoption key :查看具体参数值
更新
vmoption key value
6、jad:反编译原代码(例:jad java.lang.String)
7、monitor:多维度监控类、方法的调用(https://arthas.aliyun.com/doc/monitor.html)
8、watch(https://arthas.aliyun.com/doc/watch.html):
用途
观察:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看
参数
线上问题排查
1、方法报错(线上dubug)
通过watch观察方法
2、cpu过高
第一步:thread -n 3:查看使用率最高的线程
第二部:thread id:查看该线程具体调用的方法
第三步:jad 类全路径:反编译源码
第四步:watch 类全路径 类方法:查看入参、出参、异常等情况
0 条评论
下一页