内存泄漏导致服务器内存持续增长,如何排查修复?
2026-08-11 09:19:15
# Linux
服务器内存使用量随时间线性增长,最终耗尽导致服务不可用——典型的内存泄漏。
排查与修复
1. 监控内存趋势
1 | free -m |
确认是”泄漏式”单调增长,而非业务峰值波动。
2. 定位泄漏点
- 对 C/C++ 程序用 valgrind 检测:
1 | valgrind --leak-check=full ./app |
- 对 Java/Go 等,结合 pprof / heap dump 分析对象堆积。
3. 修复与应急
- 根因是代码未释放内存:修复内存管理、优化分配策略;
- 临时应急:设置进程内存上限(如 cgroup limit / systemd
MemoryMax),或定时重启兜底,但这是治标,必须排期根治。
小结
内存泄漏 = free -m 看趋势 + valgrind/pprof 定位 + 修代码根治;应急可用内存上限或定时重启,但别把它当方案。