线上 Java 问题难排查?Arthas帮你搞定

Arthas 简介

Arthas 是阿里巴巴开源的一款 Java 诊断工具,专为线上问题排查设计。它可以帮助开发者在不重启应用的情况下,实时查看 JVM 状态、类加载信息、方法调用参数与返回值、排查性能瓶颈等,是解决线上 Java 应用问题的利器。

主要功能包括:

  • 查看 JVM 内存、线程、GC 等实时状态
  • 反编译类文件,查看当前加载的代码
  • 监控方法执行耗时,定位性能问题
  • 查看方法调用参数和返回值
  • 动态修改日志级别
  • 排查类加载冲突等问题

安装与使用方法

1. 安装 Arthas

Arthas 支持 Linux、macOS、Windows 系统,安装方式简单:

通过 curl 安装(推荐 Linux/macOS):

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

通过 wget 安装:

wget https://arthas.aliyun.com/arthas-boot.jar

Windows 系统:
直接访问 Arthas 官网 下载 arthas-boot.jar 文件

2. 启动 Arthas

Arthas 需要附着到一个正在运行的 Java 进程上,启动命令:

java -jar arthas-boot.jar

执行后会列出当前机器上所有的 Java 进程,输入对应的编号(如 1)并回车,即可附着到目标进程。

如果是远程服务器,可通过 telnetssh 连接:

# 启动时指定 IP 和端口
java -jar arthas-boot.jar --target-ip 0.0.0.0 --telnet-port 3658 --http-port 8563
3. 常用命令示例
  • 查看进程基本信息

    dashboard  # 实时显示 JVM 仪表盘,按 q 退出
    
  • 查看线程状态

    thread  # 显示所有线程状态
    thread 10  # 查看 ID 为 10 的线程详情
    thread -n 3  # 显示最忙的 3 个线程
    
  • 反编译类

    jad com.example.demo.Controller  # 反编译指定类
    
  • 监控方法执行

    # 监控方法调用次数、耗时等
    monitor -c 5 com.example.demo.Service getUser  # 每 5 秒统计一次
    
  • 查看方法参数和返回值

    watch com.example.demo.Service getUser "{params, returnObj}" -x 2
    
  • 退出 Arthas

    quit  # 退出当前会话,不影响目标进程
    stop  # 完全停止 Arthas 服务
    
4. 可视化界面(可选)

Arthas 提供 Web 控制台,启动时指定 http 端口后,可通过浏览器访问:

http://localhost:8563  # 替换为实际 IP 和端口

界面操作更直观,支持命令自动补全,适合新手使用。

注意事项

  1. Arthas 对目标应用性能影响极小,可放心在生产环境使用
  2. 部分命令(如 redefine)可能影响应用稳定性,生产环境谨慎操作
  3. 若应用使用了安全管理器(SecurityManager),可能需要额外配置权限

更多详细用法可参考 Arthas 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值