arthas使用教程

目录

1.概述

2.使用

2.1.安装使用

2.2.启动

2.3.全局监控

2.4.方法级别的监控 

2.4.1.插件

2.4.2.watch

2.3.3.trace

2.3.4.stack

2.4.线上问题定位

2.4.1.反编译

2.4.2.CPU占用率

2.4.3.死锁


1.概述

arthas是Alibaba推出的一款JVM性能诊断调优工具,主要具备以下能力:

  • 全局监控,对应用整体情况的一个监控

    • JVM的内存情况

    • 各个线程的情况

    • 运行时的环境信息

  • 方法级别的监控,对单个方法进行监控

    • watch

    • trace

    • stack

    • monitor

  • 线上问题定位,支持对线上问题进行一些排查

    • 各个进程的CPU占用率

    • 查看死锁

    • 程序反编译,用来确定当前部署的版本是不是对的。

2.使用

2.1.安装使用

下载地址:

https://github.com/alibaba/arthas/releases
下载解压后的包结构:
最核心的是arthas的应用jar

9fa4fe8dee704a89929aa720c1befc7b.png

2.2.启动

启动要监控的java进程后,再启动arthas。直接通过java -jar arthas-boot.jar可以启动arthas,启动后会列出当前可监控的JAVA进程,选择要监控的进程。

c27629a3b0b848d0a93756b30c283ba1.png

 选择好要监控的进程后,接下来就可以通过输入命令的方式来查看具体的监控内容。

2.3.全局监控

dashboard命令,实时展示全局线程情况、内存情况、运行环境信息。

7f8f6334797c4290bb68197dee60cdb7.png

 thread命令,可以查看所有线程信息。

a895ad98895e4b158865ffbc0360fad8.png

 thread -id,查看具体线程的信息。

d9689cd424c3447e9693532be1e1f8b2.png

2.4.方法级别的监控 

在我们进行调优的时候,先要定位性能问题在何处,直白来说就是往往需要定位到应用内具体的某一个方法。所以对具体方法粒度的监控是很重要,很常用的,arthas提供了一整套对于方法的监控。

方法级别的监控:

  • watch

  • trace

  • stack

  • monitor

2.4.1.插件

方法级别的监控命令后面需要跟很多参数,每次都手动输入的话会很慢,可以安装一个idea的插件,用来自动生成带参数的指令,方便高效。

fa8c8974a149426e8e5fddadde942e28.png

安装arthas idea后选中该右击方法,会有arthas command选项。  

a538dcb369df419a9d5e83cdbbc37d97.png

2.4.2.watch

watch命令用来查看方法的一些信息,如参数、返回值、异常等,

-n 执行次数

-x每次调用追进去监控的层级深度。

665a9d69c46c49199931042aa448593d.png

2.3.3.trace

trace命令用来查看方法的耗时,

-n 执行次数

 4660979d5ac24fdfa2ceced484c21d37.png

2.3.4.stack

stack命令,查看方法的调用栈,用来确定方法在何处被调用了,

-n 执行次数

966883c028574043885c938d8daf8477.png

2.4.线上问题定位

如果是一个我们已经在实际进行生产使用的一个系统,线上出了问题,根据经验来说我们可以从几个方面去考虑问题:

  • 代码的版本是否正确,从而判断是不是代码部署的问题。
  • CPU的占用率是否过高,从而判断是不是性能问题
  • 是否有死锁,从而判断是不是代码编写的问题。

arthas提供了指令用来支持以上三个维度的问题排查。

2.4.1.反编译

jda -类名,可以反编译类,用来确定当前部署的版本是不是正确的。

906f22489c4c4cb7b245c7d2654e269a.png

2.4.2.CPU占用率

thread -n 根据CPU占用率从高到低例举出指定数量的线程。

f6c9ac1b1b2e4287b4f8fe4e254cfe97.png

2.4.3.死锁

死锁首先在全局监控里可以看到所有状态为BLOCKED的死锁。

也可以通过thread -b指令来查看所有死锁。

44c5faadf9784fcda015edd5e1192df4.png

猜你喜欢

转载自blog.csdn.net/Joker_ZJN/article/details/131608156