Full GC 每 20 秒一次,重启十天又犯
每个 Java 后端都见过那个告警:Full GC frequency spike。多数人的动作是:重启 → 告警消失 → 结案。一个月后同一个告警再来。重启解决不了内存问题,只是把证据销毁了。
4GB Heap Dump 打不开?别急着加 -Xmx,先看这个
当 Dominator Tree 失效时,OQL 才是字符串泄漏的真正入口。4GB dump 里 6000 万个 String 的排查实录。14:02,告警弹窗:Old Gen 82.5%,FullGC 32 分钟一次。第一反应——查 Dominator Tree(支配树视图)。
Java内存泄漏排查全攻略:从OOM异常到根治,高手都这样干
服务运行几小时就卡,内存只升不降,真凶到底藏在哪。我之前遇到过一个服务,上线时挺稳,跑几个小时后内存慢慢涨,最后OOM重启。很多人第一反应是加内存、调大-Xmx、重启,结果过几天又来。内存泄漏排查不是修一个普通bug,它得靠证据链、时间线和代码逻辑一起找。
Java 垃圾回收机制:G1、ZGC 到底有什么区别?一文看懂 JVM 内存回收
在 Java 开发中,有一个问题几乎每个开发人员都会遇到:为什么系统运行一段时间后,内存越来越高?为什么接口偶尔会卡顿几百毫秒,甚至几秒?为什么明明服务器还有内存,Java 应用却突然出现了 OutOfMemoryError?很多时候,这些问题都与 JVM 的垃圾回收机制有关。
Java OOM 实战:内存溢出原因与排查方法,从 Heap Dump 到 MAT 分析
在 Java 项目开发中,有一种异常让很多开发人员头疼:java.lang.OutOfMemoryError: Java heap space有时候,系统运行得好好的,突然接口响应变慢,GC 频繁执行,最后服务直接崩溃。有时候,服务启动没问题,但运行一段时间后就开始报 OOM。
一张图掌握 Java 内存管理
从 JVM 内存结构、堆内存与非堆内存,到垃圾回收机制、四种引用类型和内存泄漏排查,全面解析 Java 内存管理的核心知识。
JVM 如何运行 Java 程序?从类加载到内存模型,一文看懂 JVM 核心原理
《Java 技术进化论》专栏 · 第四篇我们每天都在编写 Java 代码。例如:public class HelloWorld { public static void main(String[] args) { System.out.
Java项目上线前该调的5个JVM参数
部署新项目时,大多数人只关心 Jar 包有没有打对、配置文件有没有写错。直到上线第一周——GC 停顿把接口响应拉到 3 秒、元空间把服务撑崩、内存泄漏排查连 dump 文件都没留。这篇文章梳理了上线前真正该调的 5 个 JVM 参数。
Linux使用MAT分析dump文件
上文中,谈到了windows如何使用MAT分析堆快照,查找内存泄漏?那么在生产上如何分析dump文件呢?生产上分析dump文件的话,还是linux工具比较方便,因为生产上的dump文件一般都比较大,这么大的文件拷贝到本机要耗费很长时间。那么linux有什么好的解析dump工具呢?
JVM 堆参数怎么调,生产救火三次总结的经验值
先说结论:JVM 堆调参没有万能公式,但有一些坑你不踩一次就不会信。过去四年我在生产环境救过三次 JVM 火,每次都觉得自己学到了,下一次又用新的姿势翻车。今天把这三次踩坑+复盘的过程和最后总结出的参数模板,原原本本写出来。希望你看完,少加几次班。