Java开源诊断工具Arthas使用方法详解 Arthas是阿里巴巴开源的Java诊断工具,能够附加到Java服务器进程上,查看服务器状态、JVM状态等各种参数指标,还可以进行热更新。下面是Arthas使用方法详解: 一、前言 在 Java 开发和生产环境中,服务器出现问题时,需要追加打印日志或者增加一些调试代码。如果我们去改代码重新部署,会破坏问题现场。 Arthas 可以通过热部署的手段来增加调试代码。 二、使用 Arthas Arthas 可以附加到我们的 Java 服务器进程上面,查看服务器状态、JVM 状态等各种参数指标,还可以进行热更新。使用 Arthas 需要下载 Arthas 的 Boot Jar 包,命令如下: wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 启动后会显示当前机器上面所有的 Java 进程,选择我们需要监控/修改的进程,输入序号回车。 常用命令包括: * dashboard:当前系统的实时数据面板 * thread:查看当前 JVM 的线程堆栈信息 * jvm:查看当前 JVM 的信息 * sysprop:查看和修改 JVM 的系统属性 * sysenv:查看 JVM 的环境变量 * getstatic:查看类的静态属性 例如,打印前五名最消耗 CPU 的线程,可以及时找到 CPU 过高的代码位置: thread -n 5 查看某个函数的调用堆栈: stack <类全包名> <函数名> 查看某个函数的哪个子调用最慢: trace <类全包名> <函数名> 监控某个函数的调用统计数据: monitor <类全包名> <函数名> 三、热更新 热更新是 Arthas 的一大特性。下面是热更新的步骤: 1. 找到我们需要更新代码的全包名,通过 jad 命令将线上正在运行的代码反编译出来: jad --source-only <全包名> > <导出目录+文件名> 2. 拿到 Java 代码后,我们根据需求来修改代码,需要注意的是这里热更新代码的实际原理是调用 Java 基础类 java.lang.instrument.Instrumentation 的 redefineClasses 方法,他可以通过修改字节码来替换已有的 class 文件,其中有诸多的限制。 3. 修改好代码后,我们要找到这个类对应的类加载器,再去加载这个 class,执行如下命令会返回类加载器的对象地址: sc -d <全包名> | grep classLoaderHash 4. 通过内存编译将 Java 文件编译成 Class 文件: mc -c <类加载器的对象地址> 5. 我们通过命令将 class 文件进行热更新: redefine 更新完毕不出意外会立即生效,这时候就可以去验证代码是否生效了。 Arthas 是一个功能强大且实用的 Java 诊断工具,可以帮助我们快速诊断和解决问题。
2025-12-04 01:11:12 62KB Java 诊断工具 Arthas
1
博客地址: https://blog.csdn.net/lydms/article/details/125238249 Xmind整理: https://download.csdn.net/download/weixin_44624117/8561266 相关资料: https://download.csdn.net/download/weixin_44624117/85612648
2024-03-24 09:12:24 189KB Arthas
1
阿里 arthas离线文档,官方文档,java调试工具,监控java代码运行,arthas使用文档api,用法,官网下载太慢,这里放一份,资源分不知道怎么修改
2023-04-19 11:46:43 12.64MB arthas doc html api
1
arthas,追踪堆栈,监控服务,拆箱即用
2023-01-12 19:26:39 12.7MB arthas java
1
profile命令支持生成应用热点的火焰图。本质上是通过不断的采样,然后把收集到的采样结果生成火焰图。
2022-10-21 18:06:11 29.75MB 火焰图
1
当你遇到以下类似问题而束手无策时, Arthas 可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一个全局视角来查看系统的运行状况? 有什么办法可以监控到JVM的实时运行状态? Arthas 支持JDK 6+,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便 进行问题的定位和诊断。
2022-10-17 02:29:29 1.68MB arthas 淘宝
1
arthas安装包
2022-09-20 19:07:28 25.76MB linux
1
arthas-bin.zip 性能检测工具
2022-07-04 12:00:37 12.87MB arthas-bin
1
Arthas和LiveCharts分别是WPF的第三方常用控件库和统计图表库,用起来很好看,也很方便
2022-05-17 17:45:10 188KB Arthas LiveChart.dll
1
内部公司一个关于Java诊断工具Arthas.ppt分享,Arthas 是阿里巴巴在2018年开源出来的一款 Java 诊断利器,它主要是针对线上环境,能够帮助我们更好的定位问题。 截止到2019年8月29日,在Github上总共被916人watch,有16077个star、3337个fork。
2022-01-19 17:32:17 4.19MB java Java诊断工具 ppt
1