Arthas基本使用

 arthas简单介绍

        java线上诊断工具,功能强大,可以查看包加载路径,线上跟踪参数的传递,单一接口的入参以及出参,实时观看数据报表,查看cpu,堆内存的使用情况,生成火焰图,热更新代码等,下载安装简单且可配合idea插件快速上手

官方文档:Arthas 用户文档 — Arthas 3.6.2 文档

下载以及安装

官方 Github 下载命令

curl -O https://alibaba.github.io/arthas/arthas-boot.jar

码云下载

curl -O https://arthas.gitee.io/arthas-boot.jar

下载压缩包

 进入官方文档,点击下载安装部分,本人使用的就是这种方法将整个包下载下来,在本地使用cmd命令打开黑窗口,并输入:java -jar arthas-boot.jar命令启动


 这是我提前写好的demo,本地启动该demo后,启动arthas就能找到对应程序

下载的arthas里都会有一个数字游戏的jar包,可以启动该包作为练习使用,通过进入官方文档还可以点击在线教程进行线上练习

demo启动后,启动arthas的界面如下

 找到自己要进行调试的jar包,输入它的id后回车就可启动,退出arthas要使用stop命令,防止端口被占用

配合idea插件的简单使用

常用命令介绍

watch : 查看方法的入参以及出参

trace  : 方法的耗时

thread: cpu使用情况

tt        : 记录参数的时间隧道

dashboard : 数据面板

jad     :反编译代码


插件:arthas idea

 下载插件后,选中要调试的方法名或者类名就可以获得想要的arthas命令,例如以下命令

 解决cpu高,死锁,内存溢出等问题

我写了个死循环,通过arthas的方式将其找出来

代码:


访问test3,使用thread命令 查看cpu使用情况,高达79

 访问test4,使用thread命令 查看cpu使用情况

 

 thread -all 会查所有线程的cpu, thread -n 代表线程使用率最高的第n个,

thread -b 代表发生死锁的线程,在里面也能找出我们程序中的类和方法


内存溢出代码 

启动的时候,将堆内存设小一点 ,这里重新启动程序,以及arthas

先使用dashboard查看一下数据面板,堆内存使用情况,

 接着去访问test6,程序终端报出了我们熟悉的内存溢出

 再观察一下jvm堆的使用情况

如果内存使用率在不断上升,而且gc后也不下降,后面还发现gc越来越频繁,很可能就是内存泄漏了,这个时候我们可以直接用heapdump命令把内存快照dump出来

使用工具进行分析即可,我这里下载的是idea的分析工具

 

 

 stop命令退出arthas会撤回所有方法的增强命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值