arthas实用命令

本文介绍了如何使用Arthas工具监控JVM的阻塞线程、MyBatis的SQL查询、MongoDB操作、HTTP接口响应、方法执行详情以及类变量值,还包括OGNL表达式、时空隧道、热部署等技术在性能分析和问题定位中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询当前JVM的阻塞线程

thread -b

可以看到 CPU 使用较高的方法和行数

thread id

打印mybatis查询sql

watch org.apache.ibatis.executor.SimpleExecutor doQuery '{params[0].resource,params[0].id,params[4].sql,params[4].parameterObject,returnObj,throwExp}' -x 3

打印mybatis查询某个dao的sql

watch org.apache.ibatis.executor.SimpleExecutor doQuery '{params[0].resource,params[0].id,params[4].sql,params[4].parameterObject,returnObj,throwExp}' 'params[4].sql.contains("sql语句")' -x 3

打印mybatis查询某个dao的特定sql(最实用的)

watch org.apache.ibatis.executor.SimpleExecutor doQuery '{params[0].resource,params[0].id,params[4].sql,params[4].parameterObject,returnObj,throwExp}' 'params[0].id.contains("namespace.id")' -x 3

查询mongo的执行语句(arthas + mongo慢日志排查接口性能问题_arthas排查接口慢-CSDN博客)

-- command = "query"/ "insert"/ "delete"

db.system.profile. find ( { op : { $ eq : 'query'}}).pretty()

watch org.springframework.data.mongodb.core.MongoTemplate find '{params,returnObj,throwExp}' 'params[0]=="t_alarm"' -x 2
watch org.springframework.data.mongodb.core.MongoTemplate count '{params,returnObj,throwExp}' -x 2
watch org.springframework.data.mongodb.core.MongoTemplate aggregate '{params,returnObj.mappedResults.size,throwExp}' -x 2

打印某个url请求接口的返回数据(每个项目不同)

watch com.zsz.common.utils.HttpUtils post '{params,params[1],returnObj,throwExp}' 'params[0].contains("url请求地址")' -x 3

打印接口返回的某个特定数据(每个项目不同)

watch com.zsz.common.utils.HttpUtils post '{params,params[1],returnObj,throwExp}' 'returnObj.contains("返回的特定内容")' -x 3

查询多个方法的执行过程和耗时(接口超时定位)

trace -E 包路径+类名1|包路径+类名2 方法名1|方法名2|方法名3

查看价值的类变量

watch package.Class method '{target}' -x 3

tt命令,时空隧道,记录多次执行数据

记录package.Class里的method方法

tt -t package.Class method

查询所有已记录的方法(is-exp方法是否抛出异常)

tt -l

查看某个记录的详细信息,其中index是记录的索引

tt -i index

实用ognl表达式,方法同watch

 tt -i index -w 'params[0].{name}' -x 2

重新调用某条记录(当后台数据发生变化时,返回会不同)

tt -i index -p

热部署(本地编译好包放到环境上,解决环境临时问题避免换包,重启后失效,有可能执行失败)

redefine xxx.class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值