整理釜山服务器内存泄漏导致 OOM 与频繁重启的排查实战。
内存泄漏会导致进程被 OOM 杀掉。以下是实战。
一、确认现象 - 内存持续增长不释放 - 定期被 OOM Killer 杀掉 - 重启后短时间恢复又复发
二、定位 1) 观察内存曲线是否单向增长 2) ps/top 按内存排序找进程 3) dmesg 查看 OOM 记录 4) 用 pmap/valgrind/pprof 分析堆 5) 检查连接、缓存与集合是否无上限
三、常见原因 1) 缓存或集合无上限 2) 连接与对象未释放 3) 长生命周期引用累积 4) 第三方库缺陷 5) 未限制并发
四、处理 - 定位并修复泄漏点 - 为缓存设置上限与淘汰 - 释放未使用资源 - 升级或替换问题库 - 临时加内存与重启缓解
五、优化 1) 内存监控与告警 2) 定期滚动重启 3) 压测与内存分析
六、预防 - 上线前内存压测 - 代码审查资源释放 - 容量规划
总结:内存泄漏要先用内存曲线与 OOM 日志定位,再从缓存上限、引用与依赖库逐项修复。