月度归档:2026年9月 (54)

连载中 19/20

堆外内存:-Xmx 管不到的那部分

容器里 -Xmx 给了 4G,进程 RSS 却涨到 7G——多出来的在堆外:元空间、直接内存、线程栈、Code Cache。heap dump 里看不见它们,排查得换一套工具。

#堆外内存#直接内存#元空间#NMT#Netty泄漏
2026-09-20 · 7 阅读 · 0 评论 · 0 赞
连载中 18/20

JIT 与逃逸分析:你的代码不是按你写的样子跑的

字节码先解释执行,热点代码被 JIT 编译成机器码,还被顺手内联、消除锁、拆散对象——三层手术做完,跑出来的已经不是你写的代码。理解它,才明白微基准为什么会骗人。

#JIT#逃逸分析#方法内联#锁消除#JMH
2026-09-19 · 4 阅读 · 0 评论 · 0 赞
连载中 17/20

JVM 调优:先分清是谁的锅,再谈动参数

九成"JVM 需要调优"的场景,根因在代码或架构——缓存缺失让 GC 频繁,池子乱配让线程暴涨。参数是最后一步,思路比数值重要:目标先行、日志说话、一次只动一个旋钮。

#JVM调优#G1参数#生产模板#压测对比#调优误区
2026-09-19 · 4 阅读 · 0 评论 · 0 赞
连载中 16/20

内存泄漏实战:一次每周涨 100M 的慢泄漏排查

快泄漏当场 OOM,慢泄漏每周涨一点——监控曲线上"锯齿底部不断抬高"就是它的签名。静态集合、ThreadLocal、监听器,三大窝点挨个查。

#内存泄漏#慢泄漏#MAT对比#ThreadLocal#静态集合
2026-09-18 · 5 阅读 · 0 评论 · 0 赞
连载中 15/20

CPU 飙高排查:从 top 到火焰图的完整路径

CPU 100% 不一定是业务忙——死循环、GC 抢核、锁自旋、正则灾难,四种根因各有排查路径。一条完整流程把"哪个线程在哪个方法烧 CPU"挖到底。

#CPU排查#top#火焰图#async-profiler#正则灾难
2026-09-18 · 3 阅读 · 0 评论 · 0 赞
连载中 14/20

OOM 地图:七种 OutOfMemoryError 各从哪里来

OOM 不只是堆满——元空间溢出、直接内存耗尽、GC 开销超限、栈深度炸穿,各有各的报错信息与出生地。一张地图把七种 OOM 归位。

#OutOfMemoryError#Metaspace#DirectBuffer#GC overhead#线程数限制
2026-09-17 · 3 阅读 · 0 评论 · 0 赞
连载中 13/20

MAT 实战:从堆转储找出泄漏元凶

堆转储拿到手,光看对象大小不够——浅堆与深堆的区别,才是定位泄漏的关键。Dominator Tree 和 Path to GC Roots,两板斧把"谁拴住了谁"摸清楚。

#MAT#堆转储分析#浅堆深堆#Dominator Tree#内存泄漏排查
2026-09-17 · 4 阅读 · 0 评论 · 0 赞
连载中 12/20

排查四件套:jstack、jmap、jstat、jcmd 的实战分工

jstack 看线程在干什么,jmap 看堆里装了什么,jstat 看运行时在变什么,jcmd 是统一入口。四把刀各管一段,配合着用没有查不动的现场。

#jstack#jmap#jstat#jcmd#排查工具
2026-09-16 · 4 阅读 · 0 评论 · 0 赞
连载中 11/20

GC 日志:把回收过程翻译成人话

一行 GC 日志里塞着七种信息:谁触发的、收了哪、停了多久、活了哪些。加上 -Xlog 配置,再加上日志分析工具,GC 不再是只能盯监控曲线的黑盒。

#GC日志#Xlog#日志分析#GC监控#Full GC排查
2026-09-16 · 7 阅读 · 0 评论 · 0 赞