JVM之arthas在线排查工具

启动arthas

arthas的github地址:https://github.com/alibaba/arthas
arthas官方文档:https://alibaba.github.io/arthas/index.html

点开github上arthas的中文文档
在这里插入图片描述
按照文档的步骤一步一步下载就好了,下载之后方法到linux上,并且解压得到
在这里插入图片描述
启动一个java文件,这个java文件自己随便写一个模拟死循环就行了
在这里插入图片描述
回到arthas目录,输入java -jar arthas-boot.jar 启动arthas
在这里插入图片描述

总结几个常用的命令

1.jvm命令:

在这里插入图片描述JVM命令可以查看当前JVM的一些基本参数,包括JDK版本,内存状况,启动参数等。。。

2.thread命令:

在这里插入图片描述类似于jstack,可以查看线程的状况,包括线程id,线程名称,线程状态,cpu使用情况。

使用 thread + threadId可以查看执行线程的详情
在这里插入图片描述

3. dashboard命令:

在这里插入图片描述总体查看系统的一些信息,包括线程,内存,以及OS的信息。

4.heapdump 命令

在这里插入图片描述导出heap文件,需要注意的是导出的文件,后缀名必须是.hprof。
我们有jhat命令来分析这个文件:
在这里插入图片描述访问7000端口
在这里插入图片描述拉取到网页的最下端
在这里插入图片描述
在这里插入图片描述
这里跟在线分析jmap差不多。
需要注意的是,如果项目上线了,最好不要在线程导出dump文件,由于堆太大的一些原因,可能会导致整个系统长时间的瘫痪无法运行。

除了jhat命令,我们还可以把hprof文件下载到本地,利用JDK自带的jvisualvm图形界面来分析hprof文件
在这里插入图片描述
定位问题
在这里插入图片描述

5.jad命令:

在这里插入图片描述可以把指定的类进行反编译。 动态代理生成类的问题定位 第三方的类(观察代码) 版本问题(确定自己最新提交的版本是不是被使用)

6.redefine命令:

用于在已经上线,不方便停止运行的情况下,修改小型bug,热替换。
热替换 目前有些限制条件:只能改方法实现(方法已经运行完成),不能改方法名, 不能改属性 m() -> mm()

7.SC命令:

“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息

更详细的介绍,还是需要看官方的文档,这里只是简单的应用。

戏入人生
希望和大家一起学习进步,如果我有理解不正确的地方请留言指正,谢谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值