| 失效链接处理 |
|
阿里开源的Java诊断工具 - Arthas 4 到底有多强大 ?
相关截图:
![]() 主要内容:
Arthas 是干什么的
Arthas 是阿里巴巴开源的 Java 诊断工具,代码在 alibaba/arthas。它能跑在 Linux、macOS 和 Windows 上,平时用命令行跟你对话,Tab 键可以补全命令和类名。
你可以把它想成一根随时插上的听诊器。业务代码保持原样,JVM 参数也不必提前埋点。进程还在跑,用 arthas-boot.jar 选中它,就能开始问:现在哪根线程最忙?这个方法被谁调用、花了多少时间?线上真正加载的类,反编译出来长什么样?
Arthas 4 新在哪里
4.x 把两件事做实了:在更新的 JDK 上稳住,以及把诊断结果交给更多人看。下面几条,是我会特意记在小本子上的。
JDK 从 8 覆盖到 25。 Arthas 4 要求 JDK 8 及以上。官方说明里写了 JDK 17、21、25 都在支持范围内。团队运行时已经切到 JDK 21,甚至更新的版本,就用 4.x 这一档。依赖也收过一轮,Jackson、Fastjson2、OGNL、Netty 都升过,诊断工具自己少踩安全方面的坑。
火焰图这条链路更完整。 profiler 内置的 async-profiler,在 4.2.0 里升到了 4.4。CPU 采样之外,4.0.2 起可以用 --wall 看墙钟时间。锁等待、网络卡住这类「CPU 看起来不高、接口却很慢」的问题,会更容易露出来。会话默认超时也从 30 分钟放宽到 3 小时,采样进行到一半,命令行不容易被踢掉。
Metaspace 可以按类加载器拆开。 新命令 classloader-metaspace 借助 JFR 的 jdk.ClassLoaderStatistics,按每个 ClassLoader 统计已加载类的数量,以及 metaspace 的 chunk、block 大小。它看的是类元数据占用,适合动态代理、脚本引擎、反复生成类,把 Metaspace 慢慢顶满的场景。当前 JDK 没有 JFR 时,这条命令不会出现。
诊断可以交给 AI 助手。 Arthas MCP Server 目前还是实验模块。配好 arthas.mcpEndpoint 之后,HTTP 默认在 8563 端口提供 MCP 接口。文档里列出了 29 个诊断工具,dashboard、thread、trace、jad、profiler 这些老面孔都在。Cherry Studio、Cline 这类客户端连上以后,可以用自然语言让助手去跑命令。设置了 arthas.password 时,访问要带 Bearer Token。
顺带一提,4.1 之后补上了龙芯 loongarch64,也支持从启动包加载外部命令。日常排障用不到的话,知道有这条路就够了。
|


苏公网安备 32061202001004号
