月度归档:2026年9月 (54)
咖啡养成
连载中 19/20
堆外内存:-Xmx 管不到的那部分
容器里 -Xmx 给了 4G,进程 RSS 却涨到 7G——多出来的在堆外:元空间、直接内存、线程栈、Code Cache。heap dump 里看不见它们,排查得换一套工具。
咖啡养成
连载中 18/20
JIT 与逃逸分析:你的代码不是按你写的样子跑的
字节码先解释执行,热点代码被 JIT 编译成机器码,还被顺手内联、消除锁、拆散对象——三层手术做完,跑出来的已经不是你写的代码。理解它,才明白微基准为什么会骗人。
咖啡养成
连载中 17/20
JVM 调优:先分清是谁的锅,再谈动参数
九成"JVM 需要调优"的场景,根因在代码或架构——缓存缺失让 GC 频繁,池子乱配让线程暴涨。参数是最后一步,思路比数值重要:目标先行、日志说话、一次只动一个旋钮。
咖啡养成
连载中 16/20
内存泄漏实战:一次每周涨 100M 的慢泄漏排查
快泄漏当场 OOM,慢泄漏每周涨一点——监控曲线上"锯齿底部不断抬高"就是它的签名。静态集合、ThreadLocal、监听器,三大窝点挨个查。
咖啡养成
连载中 15/20
CPU 飙高排查:从 top 到火焰图的完整路径
CPU 100% 不一定是业务忙——死循环、GC 抢核、锁自旋、正则灾难,四种根因各有排查路径。一条完整流程把"哪个线程在哪个方法烧 CPU"挖到底。
咖啡养成
连载中 14/20
OOM 地图:七种 OutOfMemoryError 各从哪里来
OOM 不只是堆满——元空间溢出、直接内存耗尽、GC 开销超限、栈深度炸穿,各有各的报错信息与出生地。一张地图把七种 OOM 归位。
咖啡养成
连载中 13/20
MAT 实战:从堆转储找出泄漏元凶
堆转储拿到手,光看对象大小不够——浅堆与深堆的区别,才是定位泄漏的关键。Dominator Tree 和 Path to GC Roots,两板斧把"谁拴住了谁"摸清楚。
咖啡养成
连载中 12/20
排查四件套:jstack、jmap、jstat、jcmd 的实战分工
jstack 看线程在干什么,jmap 看堆里装了什么,jstat 看运行时在变什么,jcmd 是统一入口。四把刀各管一段,配合着用没有查不动的现场。
咖啡养成
连载中 11/20
GC 日志:把回收过程翻译成人话
一行 GC 日志里塞着七种信息:谁触发的、收了哪、停了多久、活了哪些。加上 -Xlog 配置,再加上日志分析工具,GC 不再是只能盯监控曲线的黑盒。