arthas使用记录

官网

https://arthas.aliyun.com/

常用命令

retransform 替换class文件

retransform /opt/temp.class

jad 反编译

jad org.my.task.AutomatiTask

exit/logout/q/quit 退出

退出当前 Arthas 客户端,其他 Arthas 客户端不受影响。等同于exit、logout、q三个指令。
只是退出当前 Arthas 客户端,Arthas 的服务器端并没有关闭,所做的修改也不会被重置。

stop

关闭 Arthas 服务端,所有 Arthas 客户端全部退出。
关闭 Arthas 服务器之前,会重置掉所有做过的增强类。但是用 redefine/retransform 重加载的类内容不会被重置。

常用场景

找到卡死的线程

比如打印了日志之后卡死

2023-07-24 17:44:14 [com.xxl.job.core.thread.JobThread#run]-[164]-[Thread-33] 

连接上arthas后输入thread --all 靠肉眼找到Thread-33名字的线程找到他的id输入
thread id 即可看到当前线程的堆栈信息.

热更新

比如给方法加日志查问题.或者简单的修改懒得发包
在idea里面修改原java文件 点击构建->重新编译xx.java
然后找到更新后的class文件,扔到服务器上.
进入arthas 输入命令 retransform /opt/temp.class
新加字段class替换不了,如果之前没有log对象请用System.out.println()

常见问题

Can not find tools.jar

错误原因: arthas依赖jdk中的 tools.jar工具包,你可能安装的JRE或者JDK 9 及以上版本,默认没有此包
解决方法: 从别的JDK的lib下面拉一个过来扔到当前java环境的lib里面 记得linux要从linux版本的jdk拉

选择pid界面 只显示id 和/usr/bin/java不显示jar包名

错误原因:已知某些操作系统会导致此问题 如阿里龙蜥(Anolis)
解决方法:
使用 ps -ef | grep jar包名
第一条记录的pid就是你jar包的pid,根据此输入数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值