下载安装
Arthas使用需先启动Java应用,确保服务器已安装JDK并可访问公网。下载arthas-boot.jar,运行后选择目标Java进程即可接入。支持多进程管理,通过序号选择,便于后续诊断操作。
2.基础指令
Arthas简介:通过`dashboard`查看线程信息,`jad`反编译类,`thread`分析线程堆栈与阻塞,`watch`监控方法参数及耗时,支持按状态、采样等条件过滤。`quit`退出连接,`stop`彻底关闭服务,便于Java进程诊断。
1.下载安装
Arthas是一款Java诊断工具,需先启动Java应用并安装JDK。通过curl下载arthas-boot.jar,运行后选择目标进程即可接入。支持多Java进程管理,适用于SpringBoot等应用的线上问题排查与动态诊断。
基础指令
Arthas 是一款Java诊断工具,支持查看线程信息(dashboard、thread)、反编译类(jad)、观测方法调用(watch)等。可通过命令查看最忙线程、阻塞线程、指定状态线程及方法入参出参,支持采样间隔设置,帮助快速定位性能问题。
精准定位Java应用CPU负载过高问题
本文介绍如何通过Arthas工具的watch指令监控Spring MVC中DispatcherServlet的getHandler方法,快速定位请求对应的Controller,并结合反编译查看代码逻辑,提升问题排查效率。
记Arthas实现一次CPU排查与代码热更新
本文介绍如何使用Arthas排查Java应用CPU占用过高问题,通过thread、watch、jad等指令定位线程阻塞与异常代码,并实现无需重启的热更新修复,结合profile生成火焰图进行性能分析,提升线上问题处理效率。
下载安装
Arthas 是一款Java诊断工具,使用前需确保服务器已启动Java应用、安装JDK并可访问公网。通过下载 arthas-boot.jar 并启动,可连接目标Java进程进行实时监控与问题排查,支持多进程选择,操作简单高效。
RocketMQ:底层Netty频繁OS OOM
JVM使用jemalloc分配native内存,排查发现无明显泄漏。通过pmap、gdb分析及Arthas查看Netty堆外内存占用,定位到RocketMQ客户端因Netty直接内存分配导致内存超1G。调整MaxDirectMemorySize引发消息积压,最终确认问题源于Netty内存管理机制。短期方案为压缩Java堆,腾出堆外空间保障MQ可用性。
RocketMQ:底层Netty频繁OS OOM
某核心应用出现少量机器OOM被杀,排查发现容器内存8G,JVM堆4G、MaxDirectMemorySize设为1G,但实际RSS远超预期。通过NMT定位到“Other”内存持续增长,结合Arthas发现7个不同ClassLoader加载了Netty的PooledByteBufAllocator,每个独立占用堆外内存,导致总使用量突破1G限制。其中rocketmq-client实例几乎占满1G,最终确认为多ClassLoader引发的堆外内存超额使用问题。
dashboard基础指控
Arthas简介:通过`dashboard`查看线程信息,`jad`反编译类,`thread`分析线程堆栈与阻塞,`watch`监控方法参数、返回值及异常。支持按状态筛选线程,查看CPU占用、运行时间等。`quit`退出连接,`stop`彻底关闭Arthas。字符数:238。