Arthas jvm诊断工具入门到精通

我举个常见场景,你有没有遇到有没有觉得难搞,熟练使用Arthas会让以下问题非常简单:

  1. 生产环境慢接口分析,不知道接口耗时的原因 (trace命令)
  2. 生成环境断点,查看某个方法入参返回值(watch命令)
  3. 觉得运维发版的代码和我本地代码不一样,需要反编译 (Decompile Class Jad 命令)
  4. 查看内存中,变量的值 (OGNl表达式)
  5. cpu高时,分析造成cpu高的代码 (thread命令)
  6. 拦截某个方法,并且以同样的入参进行重试调用 (TT命令)
  7. 调用代码中任意方法 (OGNl表达式)

arthas支持非常丰富的功能,以上只是我平时生成环境调优经常遇到几个场景,相信大家也经常遇到,下面对arthas进行详细介绍。

一. 主要功能概览

官方文档:https://arthas.aliyun.com/doc/install-detail.html
在这里插入图片描述

二. idea插件介绍

插件管理,搜索:arthas idea。该插件提供了arthas几乎所有命令快捷生成以及中文说明。
在这里插入图片描述
在类和方法上单机右键,选择Arthas Command。
在这里插入图片描述

三. 举例

  1. 安装
    正常安装需要下载arthas-boot.jar然后启动,每次还要找到arthas-boot.jar所在目录。使用工具提供的命名行安装,会把as.sh写入环境变量,在任何地方都可以直接使用,更方便。
curl -sk https://arthas.aliyun.com/arthas-boot.jar -o ~/.arthas-boot.jar  && echo "alias as.sh='java -jar ~/.arthas-boot.jar --repo-mirror aliyun --use-http 2>&1'" >> ~/.bashrc && source ~/.bashrc && echo "source ~/.bashrc" >> ~/.bash_profile && source ~/.bash_profile

在这里插入图片描述
2. 慢接口分析
在方法上单机右键,选择Trace会复制一下命令到剪切板

trace com.chainup.debt.utils.HttpUtils postWithHeaders -v -n 5 --skipJDKMethod false 

-v 是过滤掉没匹配到的空请求
-n 是抓取5次
在这里插入图片描述
在这里插入图片描述
从官网找了一个结果显示,可以看到每个方法调用的次数、执行时间和代码行数

其他命令就不逐一演示了,使用起来比较简单,实战很重要,需要大家挨个体验,最上面对应的问题已经给出了建议使用的命令。又不懂的欢迎评论区留言

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值