关于 Arthas

命令:

表达式常用变量:params 入参数组(params0)、 returnObj返回值、 throwExp异常、 target this(实例字段:target.someField)、#cost耗时ms。末尾还能跟条件表达式,比如只要返回非空:'returnObj' 'returnObj.size()>0'

平时用的比较多的是

bash
dashboard 总览:线程CPU/内存/GC
thread 线程列表按CPU排序
thread 看某线程堆栈;thread -b 直接找死锁
sc -d *InstanceResult 搜类,谁加载的、jar路径(classloader问题查这个)
sm 类 方法 搜方法存在性
trace 类 方法 方法内部调用链 + 每步耗时,查"慢在哪"首选
watch 类 方法 '{params,returnObj,throwExp}' -x 2 看入参,返回,异常
watch 类 方法 'returnObj' -b -b入口时看,默认返回时;-e异常时;-s成功时
stack 类 方法 反向,谁调用了这个方法(不知道入口在哪时神器)
tt -t 类 方法 时空隧道录现场,事后可回放
tt -l /tt -i 1000 -w 'target.params' / tt -i 1000 -r 列表/查看/重放调用
jad类 --source-path / tmp 反编译线上实际运行的代码(怀疑部署版本不对时用)
ognl '@java.lang.System@getProperty("user.home")' 静态求值/调静态方法
vmtool --action getInstances --className 类 --express 'instances0.field' 直接从堆里抓一个现存对象看字段,watch 抓不到的"已存在的值"用它
logger --name ROOT --level debug 线上临时改日志级别
profiler start / stop --format html 火焰图,CPU 热点
heapdump /tmp/dump.hprof 导堆给 MAT 分析
reset 类 / stop 探针 / 彻底卸载

慢 → trace;

值 → watch/tt;

谁调的 → stack;

调用方未知类加载异常 → sc -d;

线上代码是不是我看的这份 → jad

相关推荐
砚底藏山河1 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融
武子康1 小时前
黑图、彩色噪声、NaN、偏色怎么排查
人工智能·后端·agent
苏三说技术1 小时前
企业智能知识库 Python 后端实战:FastAPI + RAG + KAG 企业级 AI 项目
后端
yuniko-n1 小时前
【JUC】原子类
java
Mk598781 小时前
从跑通到上生产:AgentScope-Java 六篇实战收官盘点
后端
彭亚川Allen1 小时前
从零手搓 RAG 之 Embedding 技术
前端·后端·面试
惊讶的猫1 小时前
Query 改写
java·rag
信誓旦旦的程序猿1 小时前
【Python量化实战宝典 #18】MACD 金叉死叉手册:DIF、DEA、柱体全拆解(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
星光开发者2 小时前
基于springboot智慧草场牛羊管理系统-计算机毕设【课程设计】50360
vue.js·spring boot·后端·mysql·php·课程设计·express