启动arthas

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

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

总结几个常用的命令

1.jvm命令:

JVM之arthas在线之在线排查工具JVM命令可以查看当前JVM的一些基本参数,包括JDK版本,内存状况,启动参数等。。。

2.thread命令:

JVM之arthas在线之在线排查工具类似于jstack,可以查看线程的状况,包括线程id,线程名称,线程状态,cpu使用情况。

使用 thread + threadId可以查看执行线程的详情
JVM之arthas在线之在线排查工具

3. dashboard命令:

JVM之arthas在线之在线排查工具总体查看系统的一些信息,包括线程,内存,以及OS的信息。

4.heapdump 命令

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

除了jhat命令,我们还可以把hprof文件下载到本地,利用JDK自带的jvisualvm图形界面来分析hprof文件
JVM之arthas在线之在线排查工具
定位问题
JVM之arthas在线之在线排查工具

5.jad命令:

JVM之arthas在线之在线排查工具可以把指定的类进行反编译。 动态代理生成类的问题定位 第三方的类(观察代码) 版本问题(确定自己最新提交的版本是不是被使用)

6.redefine命令:

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

7.SC命令:

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

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

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

相关文章:

  • 2022-01-05
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-12-27
  • 2021-11-20
  • 2021-11-20
  • 2021-11-14
  • 2022-12-23
  • 2021-10-01
  • 2022-12-23
相关资源
相似解决方案