java服务器调试工具arthas简单实用笔记

java服务器调试工具arthas简单实用笔记

arthas官方网站下载地址

https://arthas.aliyun.com/doc/en/download.html

arthas安装

  1. 首先从上面官网上下载arthas的zip工具包
    在这里插入图片描述
    2.将下载后的zip包放到服务器任意位置进行解压(unzip)
    在这里插入图片描述
    3.可以先根据ps -ef|grep tomcat 命令查看tomcat服务的进程,再启动arthas-boot.jar服务(注:需要使用jdk运行jar文件)
    在这里插入图片描述
    如上图所示,已经启动成功,下面讲下几种常用的调试命令。

arthas常用调试命令

watch 让你能方便的观察到指定方法的调用情况。能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。

:watch com.xxx.framework.settingapi.service.IConfigDictController getDictValuesByTag ‘{params,returnObj,throwExp}’ -n 5 -x 3

  • com.xxx.framework.settingapi.service.IConfigDictController (类名表达式匹配)
  • getDictValuesByTag (方法名表达式匹配)
  • ‘{params,returnObj,throwExp}’ (观察表达式,默认值:{params, target, returnObj})
  • -n 5 (观察5次)
  • -x 3 (参数或返回值数据结构深度为3)

trace 方法内部调用路径,并输出方法路径上的每个节点上耗时

例: trace com.xxx.systemsetting.core.service.impl.AuthorizeServiceImpl checkPlaceAuthInfoAndDeadline -n 5 --skipJDKMethod false

  • com.xxx.systemsetting.core.service.impl.AuthorizeServiceImpl (类名表达式匹配)
  • checkPlaceAuthInfoAndDeadline (方法名表达式匹配)
  • -n 5 (观察5次)

jad 命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码,便于你理解业务逻辑

例: jad com.xxx.systemsetting.core.service.impl.AuthorizeServiceImpl checkPlaceAuthInfoAndDeadline

  • com.xxx.systemsetting.core.service.impl.AuthorizeServiceImpl (类名表达式匹配)
  • checkPlaceAuthInfoAndDeadline (方法名表达式匹配)

dashboard 当前系统的实时数据面板,按 ctrl+c 退出
在这里插入图片描述
redefine 文件路径/class文件名 例:redefine /home/operation-support-group/order-service-logs/AsyncSend.class
该命令用于热部署文件,但是需要注意,需要新部署的文件,不能有新增的方法,或者删除原有方法。
arthas应该是没有进行类型卸载,所以新增或者删除方法会让类型信息(class对象)匹配不上从而报错。

jad 文件路径/文件名 - 反编译, 例子:jad com.fescotech.ordermanage.execute.asyncSend.AsyncSend

thread - 查看线程信息 , thread -b 查询当前服务有无死锁
在这里插入图片描述

quit 退出当前用户命令

stop 退出所有用户,并且关闭arthas服务。

IDEA开发工具中可下载 arthas idea插件,进行常用命令的生成,如下图:
在这里插入图片描述
插件下载后,选中需要查看的方法、或者类,右键点击,就会生成下图所示的选项,选中后会自动生成命令的复制信息。
在这里插入图片描述

以上为部分常用指令,更多指令请到官网查看。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值