最近阿里云的服务器因为开着http服务,经常因为没有内存出现 Out of memory: Kill process,运气不好kill掉了sshd之后, 服务器就只能重启了。
上google研究了一下, 找到了一些配置方法。记录一下,备忘。
sysctl vm.panic_on_oom=1
sysctl kernel.panic=X
echo “vm.panic_on_oom=1” >> /etc/sysctl.conf
echo “kernel.panic=X” >> /etc/sysctl.conf
上面配置可以让linux在出现 Out of memory之后重启。
echo -15 > /proc/2592/oom_adj
这会让 oom 在出现 Out of memory后,尽量不去kill这个进程。
echo 10 > /proc/2592/oom_adjoom
会优先考虑kill这个进程。
echo -17 > /proc/2592/oom_adj
oom在Out of memory时, 不会kill该进程。
oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高,如果设为 -17, 这进程不会被kill掉。
sysctl vm.overcommit_memory=2
echo “vm.overcommit_memory=2” >> /etc/sysctl.conf
可以完全关掉oom, 不过这并不建议,关掉后可能会出现未知的情况。
- 本文固定链接: http://www.wy182000.com/2013/07/16/out-of-memory-kill-process-配置/
- 转载请注明: wy182000 于 Studio 发表