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