跳到主内容
大鹏云 大鹏云 DAPENG CLOUD
首页 · 帮助中心 · 常见故障 · 内存不足 OOM 导致进程被杀

内存不足 OOM 导致进程被杀

网站间歇性 502、数据库莫名停止、进程无缘无故消失,很可能是内存耗尽触发了 Linux 的 OOM Killer,系统自动杀掉了占用内存最多的进程。

可能原因

  • 套餐内存不足以支撑当前业务量;
  • 程序存在内存泄漏,占用持续增长;
  • MySQL、Java 等服务内存参数配置过高;
  • 突发流量导致进程数暴涨。

排查步骤

  1. 确认是否发生过 OOM 及被杀进程:
dmesg -T | grep -i -E "out of memory|killed process"
journalctl -k | grep -i oom
  1. 查看当前内存占用与大户:
free -m
ps aux --sort=-%mem | head -n 10
  1. MySQL 占用过高:降低 innodb_buffer_pool_size 等参数;Java 应用调整 -Xmx 上限。
  2. 内存泄漏类问题:安排定时重启作为临时方案,并从代码层面修复。
  3. 没有 swap 的系统可临时添加 swap 缓解(会牺牲部分磁盘性能):
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
  1. 长期内存持续不足,建议升级更高内存的套餐。
注意:swap 只是缓冲手段,内存硬缺口仍需通过优化程序或升级配置解决。

仍未解决

请通过「支持服务 → 工单」反馈,附上 dmesg 中的 OOM 记录、free -m 与 ps 输出、被频繁杀掉的进程名,客服将协助给出配置建议。

这篇文章对你有帮助吗?