arthas整理

102 阅读1分钟

arthas介绍

Arthas是Alibaba开源的一款Java诊断工具,方便开发者在线排查问题,无需重启,同时可以跟踪Java代码,实时监控JVM状态,便于开发者进行快速定位和诊断问题。 Arthas主要是通过Java agent技术实现的,可理解为一个有插件作用的jar包, 这个jar包通过JVMTI (JVM Tool Interface)完成加载。

1.arthas能解决什么问题

(1) 这个类从哪个 jar 包加载的?解决依赖冲突问题 (2)我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? (3)遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? (4)有什么办法可以监控到JVM的实时运行状态?

2.arthas的安装

官方文档:arthas.aliyun.com/doc/install…**

idea插件,可以快速获取命令

3.基本命令使用

连接方式有3种

(1)直接启动,选择进程

(2)使用javaagent方式

(3)引用starter依赖

watch 观察接口的出入参(比如忘记打日志),是否有异常等

trace 查看接口调用链

sc 查看已加载的类,解决依赖冲突问题

thread 查看当前jvm线程,排查死锁等问题

jad 反编译代码,查看是否是最新代码

tt 查看接口耗时,重放接口调用

logger 查看日志级别等,修改日志级别

stop 停止arthas

arthas 可以异步执行后台任务,打印日志, 以及dump文件

4.arthas的使用示例

避免重启应用:github.com/alibaba/art…

线上定位cpu占用过高等问题:github.com/alibaba/art…

灵活使用ognl:github.com/alibaba/art…

redafine 热替换,参考示例:juejin.cn/post/696165…