Arthas简单使用
简介
- Arthas 是一款线上监控诊断产品。
- Arthas能监控应用 load、内存、GC、线程的状态信息。
- Arthas查看方法调用的出入参、异常,监测方法执行耗时。
一、Arthas安装
curl -O https://arthas.aliyun.com/arthas-boot.jar
二、Arthas启动
java -jar arthas-boot.jar
输入需要检测的项目序号
比如输入 1
以上,就是Arthas的下载与启动
三、Arthas排查线上问题常用的命令
1. jad命令
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
用jad命令直接查看线上代码,不用将代码下载到本地反编译。
jad命令格式:
jad --source-only 类全名 方法名
注意:方法名非必须
例:jad --source-only com.xxx.xxx.xxManagerImpl saveCommodity
2. watch命令
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
用watch命令检测类方法的入参、出参及异常信息。
watch命令格式:
watch 类全名 方法名 '{params,returnObj,throwExp}' -n 5 -x 3
watch xxx.impl.EbAppManagerConfManagerImpl changeStateByPk '{params,returnObj,throwExp}' -n 5 -x 3
3. trace命令
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
在不追加日志的情况下,使用trace命令 查看方法内部调用路径,并输出方法路径上的每个节点上耗时。
trace命令格式:
trace 类全名 方法名 -n 5 --skipJDKMethod false
trace com.xxx.service.impl.EbAppManagerConfManagerImpl changeStateByPk -n 5 --skipJDKMethod false
总结:
以上就是运维在线系统时,经常使用到的命令,可排查出多部分问题。以后用到新命令再补充。具体的操作还是得看阿里Arthas的官方文档,其内介绍的更详细准确。Arthas官网文档链接:https://arthas.aliyun.com/doc/