Bootstrap

Arthas IDE 插件最全教程:服务器端安装、IntelliJ 配置、方法变量调试与常用命令详解

言简意赅的讲解Arthas IDE 插件解决的痛点

之前给大家讲解了使用Arthas与Eclipse Memory Analyzer的完整指南,但是很多同学觉得Arthas部分还不够细。
以下内容将详细讲解 Arthas IDE 插件 的使用方法,包括 服务器端安装 ArthasIntelliJ IDEA 插件安装与配置如何观察方法变量的传入,以及一些 常用的 Arthas 命令。希望能帮助大家更轻松地进行线上问题诊断与性能调试。


一、服务器端安装 Arthas

1. 下载并启动 Arthas

(1)下载 Arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar

也可以从 Github 上下载最新版本。

(2)启动 Arthas

java -jar arthas-boot.jar

此时,Arthas 会扫描当前服务器上运行的所有 Java 进程,并列出进程 ID 和进程信息。例如:

* [1]: com.example.DemoApplication

输入需要诊断的进程编号(如 1)后回车,即可进入该进程的 Arthas 控制台。

2. 进入 Arthas 控制台

进入控制台后,你会看到类似:

[arthas@xxx]$

此时即可输入各种命令进行调试。

Arthas安装


二、IntelliJ IDEA 安装 Arthas IDE 插件

1. 打开插件市场并安装

  1. 启动 IntelliJ IDEA,进入主界面后,点击顶部菜单 File -> Settings(Windows。
  2. 在左侧导航中选择 Plugins
  3. 在右侧的搜索框中输入 Arthas
  4. 找到插件后,点击 Install 安装。

2. 重启并打开 Arthas 工具窗口

安装完成后,会提示重启 IntelliJ IDEA,点击 Restart

Arthas IntelliJ IDEA 插件安装


三、观察一个方法的变量传入

在使用 Arthas 时,最常见的需求之一就是“想查看某个方法的入参以及返回值”。下面演示使用 tt 命令来捕获目标方法的入参与返回值。

1. 确定要监控的方法

假设需要监控:

  • 类名:com.example.service.UserService
  • 方法:login(String username, String password)
    IntelliJ IDEA Arthas插件常用选项

2. 捕获方法调用

首先,在 Arthas 控制台中输入:

tt -t com.example.service.UserService login -n 5

含义:

  • tt:Trace Table 命令,捕获方法的调用。
  • -t:追踪目标方法的调用。
  • com.example.service.UserService:类的全限定名。
  • login:方法名称。
  • -n 5:最多捕获 5 次调用。

Arthas命令生成

执行后,Arthas 会提示你已监听到某些调用,并给出一个或多个调用的 INDEX,如:

 INDEX  TIMESTAMP         COST(ms)  IS-RE  IS-EX  OBJECT        CLASS                METHOD
 1000   2025-01-02 10:00  5.1234    true   false  0x12345678    UserService          login

Arthas 监控命令生成

3. 查看捕获的调用详情

假设想查看 INDEX=1000 的详细调用信息:

tt -i 1000

输出示例:

INDEX          1000
GMT-CREATE     2025-01-02 10:00:00.123
COST(ms)       5.1234
OBJECT         0x12345678
CLASS          com.example.service.UserService
METHOD         login
IS-RETURN      true
IS-EXCEPTION   false
PARAMETERS[0]  @String[user_123]
PARAMETERS[1]  @String[password_456]
RETURN-OBJ     @String[token_xyz]
  • PARAMETERS[0]PARAMETERS[1] 就是这个方法的两个入参。
  • RETURN-OBJ 即该方法的返回值。

Arthas结果展示
Arthas观测结果展示

4. 增强打印(可选)

如果方法有复杂对象,需要查看内部属性,可以使用 -x 参数增强打印深度:

tt -i 1000 -x 3

这里 -x 3 表示打印对象的 3 层嵌套属性。


四、Arthas 常用工具命令

Arthas 提供了非常多的命令来帮助我们进行线上问题诊断和性能分析。以下列出几条常用命令,供日常开发排查参考:

  1. dashboard

    • 作用:实时展示当前 JVM 的概览信息,包括线程、CPU、GC 等。
    • 使用:
      dashboard
      
  2. thread

    • 作用:查看线程的运行状态,特别适合排查线程阻塞、高 CPU 消耗等。
    • 常用参数:
      • -n 3:查看 CPU 占用率最高的 3 个线程。
      thread -n 3
      
  3. trace

    • 作用:方法调用链路追踪,显示方法内部各个调用的耗时,便于找出性能瓶颈。
    • 示例:
      trace com.example.service.UserService login
      
  4. watch

    • 作用:实时监控方法的入参、返回值或异常。
    • 示例:监控 login 方法的入参和返回值
      watch com.example.service.UserService login '{params, returnObj}' -x 2
      
    • -x 2:打印时对象展开 2 层。
  5. heapdump

    • 作用:导出当前 JVM 的内存快照,以排查内存泄露、GC 问题等。
    • 示例:
      heapdump /tmp/arthas_dump.hprof
      
  6. classloader

    • 作用:查看当前 JVM 中的类加载器信息,帮助排查类冲突或重复加载等问题。
  7. jad (Java Decompiler)

    • 作用:反编译指定类的字节码,查看源码(若源码缺失或不一致时非常有用)。
    • 示例:
      jad com.example.service.UserService
      

五、总结

  1. 服务器安装 Arthas:通过下载 arthas-boot.jar,简单执行 java -jar arthas-boot.jar 进行安装与启动。
  2. IntelliJ IDEA 插件:在 Settings -> Plugins 中搜索并安装 Arthas 插件,然后重启 IntelliJ IDEA 即可使用。
  3. 观察方法变量的传入:使用 tt 命令捕获方法调用记录,查看 -i <INDEX> 详细信息;如有复杂对象,可搭配 -x <depth> 增强打印。
  4. 常用命令dashboard, thread, watch, trace, heapdump, classloader, jad 等,非常适合定位性能瓶颈、线程问题、内存泄露等一系列线上故障。

借助 Arthas 强大的诊断能力和 IntelliJ IDEA 插件的可视化管理,我们可以对线上的 Java 应用进行快速高效的故障排查、性能分析、问题定位,极大提升开发者的工作效率。希望这篇教程能帮助你更好地掌握和使用 Arthas。


通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强

Best
Wenhao (楠博万)

;