OOM-Killer 时不时被调用

OOM-Killer 时不时被调用

我有一台专用服务器,安装了apache2以及rails-passenger。虽然我有 2GB 的 RAM,而且大多数时候大约有 1.5GB 是空闲的,但有时我会因为正在终止进程ssh而丢失通用连接。oom-killer

我猜测是存在内存泄漏,但我无法找出其来源。kills oom-killer,,等等。apache2mysqlpassenger

昨天,我做了一个cat syslog | grep -c oom-killer,得到了 57 次!

似乎有什么东西严重破坏了内存。一旦我重新启动,一切都会恢复正常。我怀疑这可能与有关passenger,但我仍在努力弄清楚。

您能想到其他原因吗?或者您有什么建议可以让泄漏识别过程更容易?我甚至考虑编写一个 bash 脚本,每 5 分钟运行一次cron

答案1

Linux 内核默认会过度使用内存,因此有时程序会成功分配不可用的内存,但 OOM 会启动并终止随机进程。禁用此功能也许可以让您识别哪些应用程序窃取了内存。例如,如果某个应用程序突然分配了一大块内存,它将失败(并希望返回错误消息)。其他应用程序也可能无法分配内存,因此您应该警惕误报。

echo 2 > /proc/sys/vm/overcommit_memory

相关内容