LINUX内核中的机制OOM

【概念】

  LINUX内核中有一个机制叫做OOM killer(Out Of Memery killer)

  该机制监控内存占用过大,尤其是瞬间消耗大量内存的进程, 为了防止内存被耗尽,所以OOM killer会将它杀掉

 

【情景】

  某台机器某天不可以ssh登录,但是可以ping通IP ==> 说明不是网络的问题

   原因可能是sshd进程被OOM killer杀掉了(这就是假死状况)

  重启服务器后,查看日志/var/log/messages会发现Out of Memory: Kill process 1865(sshd)类似的错误信息。


【解决方法参考】

  如果是虚拟化出来的环境,可以利用vncserver进入环境,重启服务器,启动sshd服务。

 

【关闭OOM】

  类似ssh或者一些agent的services,是系统中一定需要存在的,那么为了防止它被OOM杀掉,就需要我们暂时去关闭OOM

       设置方法:

#需要设置什么服务,那么先利用ps去查看PID
#然后根据PID进行设置
echo -17 > /proc/$PID/oom_adj 

 

【注意事项】

  1.Kernel-2.6.26之前版本的oomkiller算法不够精确,RHEL 6.x版本的2.6.32可以解决这个问题。

  2.子进程会继承父进程的oom_adj。

  3.OOM不适合于解决内存泄漏(Memory leak)的问题。

  4.有时free查看还有充足的内存,但还是会触发OOM,是因为该进程可能占用了特殊的内存地址空间。

 

转载于:https://www.cnblogs.com/frankielf0921/p/7671118.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值