秋意渐浓,晚安,好梦
月度存档: 10 月 2017
秋
作者: nick
日期: 27 10 月, 2017
没有评论
OOM_Killer
作者: nick
日期: 16 10 月, 2017
没有评论
服务器上跑一个geth,一段时间后莫名被Kill,查资料原来触发了内存保护,防止内存不足导致系统失去响应。
以下是网上资料:
OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味
在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc//oom_score最大者并将之kill掉
为了保护重要进程不被oom-killer掉,我们可以:echo -17 > /proc//oom_adj,-17表示禁用OOM
我们也可以对把整个系统的OOM给禁用掉:
sysctl -w vm.panic_on_oom=1 (默认为0,表示开启)
sysctl -p
值得注意的是,有些时候 free -m 时还有剩余内存,但还是会触发OOM-killer,可能是因为进程占用了特殊内存地址
平时我们应该留意下新进来的进程内存使用量,免得系统重要的业务进程被无辜牵连
可用 top M 查看最消耗内存的进程,但也不是进程一超过就会触发oom_killer
参数/proc/sys/vm/overcommit_memory可以控制进程对内存过量使用的应对策略
当overcommit_memory=0 允许进程轻微过量使用内存,但对于大量过载请求则不允许(默认)
当overcommit_memory=1 永远允许进程overcommit
当overcommit_memory=2 永远禁止overcommit
近期评论