内存泄漏导致服务器内存持续增长,如何排查修复?
2026-08-11 09:19:15 # Linux

服务器内存使用量随时间线性增长,最终耗尽导致服务不可用——典型的内存泄漏

排查与修复

1. 监控内存趋势

1
2
free -m
watch -n 5 free -m # 每 5 秒看一次,观察是否持续上升

确认是”泄漏式”单调增长,而非业务峰值波动。

2. 定位泄漏点

  • 对 C/C++ 程序用 valgrind 检测:
1
valgrind --leak-check=full ./app
  • 对 Java/Go 等,结合 pprof / heap dump 分析对象堆积。

3. 修复与应急

  • 根因是代码未释放内存:修复内存管理、优化分配策略;
  • 临时应急:设置进程内存上限(如 cgroup limit / systemd MemoryMax),或定时重启兜底,但这是治标,必须排期根治。

小结

内存泄漏 = free -m 看趋势 + valgrind/pprof 定位 + 修代码根治;应急可用内存上限或定时重启,但别把它当方案。