7.2.2.1 堆碎片整理 7.2.2.1 堆碎片整理:一次内存泄漏误判引发的深度反演——我们是如何用 + 自定义 arena 遍历,在 37 分钟内定位到那个“永远不释放”的 64 字节 chunk 的 凌晨两点十七分,监控告警第三次弹出: , 持续爬升,但 显示 , , 全部为空; 显示 RES 稳定在 4.2GB,VIRT 却已飙至 12.8GB; 抓取的线程栈里,17 个 worker 线程卡在 的 调用上,像被无形胶水粘在了同一个锁上。 这不是 OOM,不是内存泄漏,不是 GC 停顿——这是堆碎片整理失效后,系统陷入的低效自噬状态:内存明明还有空闲页,malloc 却反复失败重试;新分配请求不断向 mmap 区域逃逸,老 arena 却因碎片化而彻底“失能”。