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

arthas使用教程_第1张图片

2.2.启动

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

arthas使用教程_第2张图片

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

2.3.全局监控

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

arthas使用教程_第3张图片

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

arthas使用教程_第4张图片

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

arthas使用教程_第5张图片

2.4.方法级别的监控 

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

方法级别的监控:

  • watch

  • trace

  • stack

  • monitor

2.4.1.插件

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

arthas使用教程_第6张图片

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

arthas使用教程_第7张图片

2.4.2.watch

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

-n 执行次数

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

arthas使用教程_第8张图片

2.3.3.trace

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

-n 执行次数

 arthas使用教程_第9张图片

2.3.4.stack

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

-n 执行次数

arthas使用教程_第10张图片

2.4.线上问题定位

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

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

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

2.4.1.反编译

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

arthas使用教程_第11张图片

2.4.2.CPU占用率

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

arthas使用教程_第12张图片

2.4.3.死锁

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

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

arthas使用教程_第13张图片

你可能感兴趣的:(JAVA,EE,测试,java,测试工具)