JVM监控工具Arthas使用流程

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Arthas使用

一、下载与启动步骤

1. 下载 Arthas

  • 方式 1:直接下载 JAR 包

Bash
bash
curl -O https://arthas.aliyun.com/arthas-boot.jar
# 或
wget https://arthas.aliyun.com/arthas-boot.jar

  • 方式 2:通过 Maven 依赖(适用于开发环境)
    在项目中引入依赖(仅用于开发调试,生产环境建议直接下载 JAR):

XML
xml
<dependency>
    <groupId>com.taobao.arthas</groupId>
    <artifactId>arthas-boot</artifactId>
    <version>3.7.0</version> <!-- 使用最新版本 -->
</dependency>

2. 启动 Arthas

  • 步骤 1:确保目标 Java 进程正在运行
    使用 jps 或 ps -ef | grep java 查看进程 ID(PID)。
  • 步骤 2:启动 Arthas 并附加到目标进程

Bash
bash
java -jar arthas-boot.jar

  • 步骤 3:退出 Arthas
  • 临时退出:输入 quit 或 exit(保留 Arthas 代理,可重新连接)。
  • 彻底退出:输入 shutdown(卸载 Arthas 代理,断开所有连接)。

二、常见命令及作用

1. 基础监控命令

命令作用
dashboard实时监控 JVM 的线程、内存、GC、系统信息(类似 top 命令)。
thread查看线程状态、堆栈,排查死锁或高 CPU 占用线程。
memory显示 JVM 内存使用情况(堆、非堆、Metaspace 等)。
jvm查看 JVM 属性、系统属性、环境变量等。

2. 方法诊断命令

命令作用
trace追踪方法内部调用路径,显示各步骤耗时(性能分析)。
watch观测方法调用时的入参、返回值、异常(支持条件过滤)。
monitor统计方法调用次数、成功率、耗时等(周期性采样)。
stack显示方法调用堆栈(类似 jstack,但可针对特定方法)。

3. 类与代码操作命令

命令作用
jad反编译已加载的类(查看源代码)。
sc搜索类(Search Class),显示类的加载信息。
sm搜索方法(Search Method),显示方法的详细信息。
redefine动态加载新的 .class 文件,替换已加载的类(热修复)。

4. 高级性能分析命令

命令作用
profiler生成火焰图(需安装 async-profiler),分析性能瓶颈。
jfr启动/停止 JDK Flight Recorder(JFR)记录,生成高级性能报告。
ognl执行 OGNL 表达式,动态修改对象属性或调用方法(慎用)。

5. 其他实用命令

命令作用
help查看命令帮助文档。
session查看当前会话信息。
cls清空当前屏幕输出。

三、使用示例

  1. 查看最忙的 3 个线程

Bash
bash
thread -n 3

  1. 追踪方法调用链路

Bash
bash
trace com.example.OrderService submitOrder

  1. 观测方法入参和返回值

Bash
bash
watch com.example.OrderService submitOrder "{params, returnObj}" -x 2

  1. 反编译类

Bash
bash
jad com.example.OrderService

  1. 生成火焰图

Bash
bash
profiler start
# 执行需要分析的操作...
profiler stop --format html

四、注意事项

  1. 权限问题:在 Linux/Unix 系统上,可能需要 root 权限才能 attach 到目标进程。
  1. 生产环境慎用:redefine 和 ognl 等命令可能破坏程序状态,建议在测试环境使用。
  1. 性能影响:tracewatch 等命令会增加方法调用开销,避免在高频方法上长时间使用。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值