arthas使用

  • arthas-packaging-4.1.8-bin.zip
  • arthas-tunnel-server-4.0.5-fatjar.jar
  • Arthas(阿尔萨斯)是阿里开源的 Java 在线诊断工具,免费、轻量、不用重启、不用改代码、不用重新部署,直接 attach 运行中的 JVM,定位线上问题神器。

一、核心特点(生产级)

  • 不用重启服务
    直接 attach 正在跑的 jar,热挂载,不影响业务。
  • 不用改代码、不加日志
    想看什么参数、返回值、异常,直接动态观测。
  • 跨平台
    Windows/Linux/macOS、Docker/K8s 都能用。
  • 轻量
    一个几百 KB 的脚本 /jar,不占资源。
  • 完全免费开源
    个人 / 公司都能用,无任何付费限制。
  • 离线可用
    不需要联网,内网环境照样跑。

二、它到底能解决什么问题?(最实用)

  1. CPU 高、load 高、接口慢
  • 看哪个方法最耗 CPU
  • 看调用栈、方法耗时
  • 直接生成火焰图定位瓶颈
  1. 死锁、线程阻塞、线程池满
  • thread 命令一键查死锁
  • 看谁在等锁、谁阻塞了业务
  1. OOM、内存泄漏
  • 看堆内存、GC 情况
  • 导出 heap dump
  • 配合 MAT 分析大对象
  1. 线上看不到入参、出参、异常
  • 不用加日志、不用重新发版:
  • watch 实时看方法入参、返回值
  • trace 看链路耗时
  • stack 看谁调用了这个方法
  1. 线上热更新、热替换(排查用)
  • 临时修改 class 验证问题
  • 不重启,快速验证修复方案
  1. 动态查看配置、Spring Bean
  • 看某个 Bean 是否存在
  • 看动态配置是否生效
  • 反编译线上运行的 class,确认代码版本
  1. 集群 / 远程诊断
  • 不登录服务器
  • 不进容器
  • 浏览器直接连线上 JVM
shell 复制代码
# 用法是多个跑业务的机器,连到同一个诊断机器
# 统一连到诊断机器,默认放通7777Websocket端口,8080为web页面端口,ip为192.168.72.128,使用时请访问http://192.168.72.128:8080
java -jar arthas-tunnel-server-4.0.5-fatjar.jar
# 实际跑业务的机器,11312为业务程序的进程号
java -jar arthas-boot.jar 11312 --tunnel-server "ws://192.168.72.128:7777/ws" --app-name my-app --agent-id my-pc-11312
相关推荐
顽疲几秒前
从零用 Java 实现小红书 SpringBoot Vue UniApp(23)笔记话题多对多:一条笔记进多个话题池
java·vue.js·spring boot
木井巳14 分钟前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
Crazy________25 分钟前
05Linux内存管理核心原理与运维实战
java·开发语言
Nebula_g27 分钟前
JavaSE拓展:工具类Executors
java·开发语言·后端·spring·基础·javase
扶风ff34 分钟前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
鱼宵34 分钟前
Spring AI 可观测与透明化:traceId 串起全链路,思考过程实时直播给用户
java·人工智能·spring·链路追踪·springai
Raas1001 小时前
AI网关能做语义缓存吗?MAI Gateway(魔芋企业级AI网关)实战能力深度解读
java·后端·spring
天空鸟_时光不老1 小时前
13-亮点提炼:把技术说辞翻译成业务价值
java·spring boot·spring·spring cloud·mybatis
小蒜学长1 小时前
基于SpringBoot+Vue的租房管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·租房管理
C++ 老炮儿的技术栈1 小时前
char (*csConnectName)[256]; 和 char csConnectName [256] 有什么区别
java·c语言·开发语言·c++·人工智能·算法·c