讲师中心 微信公众号
AI工具推荐 视频效率加速

怎么配置Arthas在线诊断工具_Java应用生产环境排查利器

雨萱小哥_1135

雨萱小哥_1135

发布时间:2026-03-17 15:54:31

|

286人浏览过

|

来源于php中文网

原创

Arthas 启动失败主因是用户权限不一致或 JVM 启用 -XX:+DisableAttachMechanism;trace 仅捕获后续调用且受 JIT 内联影响;monitor/watch 开销大需谨慎;所有诊断数据会话级失效,须主动重定向或手动保存。

怎么配置arthas在线诊断工具_java应用生产环境排查利器

Arthas 启动失败:java -jar arthas-boot.jar 报错找不到进程或权限拒绝

Arthas 无法 attach 到目标 JVM,最常见原因是目标进程 UID 与当前用户不一致(比如 Java 进程由 root 启动,而你用普通用户运行 arthas-boot.jar),或目标 JVM 启用了 -XX:+DisableAttachMechanism。

  • 先用 ps -ef | grep java 确认目标进程 PID 和启动用户,切换到同一用户再执行 java -jar arthas-boot.jar
  • 若进程是 root 启动且不能切用户,可临时用 sudo java -jar arthas-boot.jar,但注意 Arthas 会继承 sudo 权限,后续命令操作范围更广,需谨慎
  • 检查 JVM 参数是否含 -XX:+DisableAttachMechanism —— 一旦启用,Arthas 完全无法 attach,必须重启应用并移除该参数
  • 容器环境(如 Docker)需确保已挂载 /tmp(Arthas 依赖 tmp 目录通信),且开启 --cap-add=SYS_PTRACE,否则 attach 时静默失败

trace 命令卡住或返回空:方法没被调用?还是匹配错了?

trace 不是监听器,它只对「后续新发生的调用」生效;如果目标方法在 trace 启动前已调用过、或根本没触发,就看不到任何输出。另外,类名/方法名写错、未加载、或被 JIT 内联都会导致无结果。

  • 确认方法签名是否完整:trace com.example.Service doWork 只匹配无参方法;带参得写成 trace com.example.Service doWork java.lang.String
  • 加 -n 5 限制采样次数,避免长时间阻塞;加 --skipJDKMethod false 才能看到 JDK 底层调用链(默认跳过)
  • 如果方法刚启动就调用,可能 trace 还没就绪——先 watch 或 ognl 验证类是否已加载,再 trace
  • JIT 编译后的方法可能被内联,此时 trace 失效;可加 JVM 参数 -XX:-TieredStopAtLevel 临时禁用分层编译辅助诊断

monitor 和 watch 性能开销大:线上不敢用?

这两个命令本质是字节码增强(retransform),每秒采集都会触发一次 JVM safepoint,高频调用或大对象打印会显著拖慢吞吐量,甚至引发 STW。

OpenJDK 24
OpenJDK 24

OpenJDK 24 Windows x64 官方参考实现(24+36),适合 Windows 环境进行 Java 开发、编译、运行和版本兼容性验证。

下载
  • monitor -c 60 表示每 60 秒统计一次,不是每秒采样 60 次 —— 时间间隔越大,压力越小
  • watch 默认打印整个入参/返回值对象,遇到大 JSON 或集合务必加条件过滤,例如 watch com.XX method '{params[0].id, returnObj.status}' -x 2
  • 生产环境慎用 watch * * * 这类通配,极易误伤;优先用精确类名 + 方法名,配合 -b(before)或 -s(success)缩小增强范围
  • 如果发现 CPU 突增,立刻 stop 或直接 shutdown Arthas,不要等超时自动退出

连接断开后诊断数据丢失:怎么保留关键现场?

Arthas 是会话级工具,终端关闭、网络中断或 stop 后所有 trace/watch/monitor 状态全部清空,不会落盘。想留痕,得主动导出。

立即学习“Java免费学习笔记(深入)”;

  • 所有命令支持重定向输出:trace com.XX m1 > /tmp/trace.log,但注意这仅保存命令执行期间的输出,不是实时流式记录
  • 真正要持续捕获,得用 dashboard -i 5 > /tmp/dashboard.log & 后台跑,配合 tail -f 查看(注意磁盘空间)
  • 复杂场景建议组合使用:jad 反编译源码存档,sc -d 查类加载详情,vmtool --action getstatic 提取静态变量快照,这些结果都可手动保存
  • 别依赖 Arthas 自动保存 —— 它没有持久化机制,断连即丢,关键线索务必在看到的第一时间复制走

Arthas 的威力不在功能多,而在「轻量介入」和「即时反馈」;但正因太轻,它不记账、不备份、不兜底。所有操作都要带着「这次断了就没了」的预期去执行。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

10797

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

7922

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

6872

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1164

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

948

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

1416

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

2849

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

20131

2023.08.03

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

60

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn