瑞策系统之家 - 最好的系统光盘下载网站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

Linux如何使用OOM杀手机制?

时间:2021-11-23 来源:瑞策系统之家--_Win10系统_Windows7旗舰版_最新GhostXP Sp3系统下载

OOM杀手机制是Linux杀死一个进程的机制。如果进程在一定程度上破坏了系统资源,OOM杀手机制就会强行杀死进程。本文将介绍Linux如何使用OOM杀手机制。

Linux如何使用OOM  killer  机制?

简而言之,该机制将监控那些占用过多内存的进程,尤其是那些瞬间消耗大量内存的进程。为了防止内存耗尽,内核会杀死进程。

即使无法释放内存,该功能也可以重复保证内存的过程,防止系统停滞,找出过度消耗内存的过程。

有一天在典型的情况是:,一台机器突然无法通过ssh远程登录,但它能够ping通,这表明这不是网络故障或机器故障。很有可能sshd进程是被OOM杀手杀死的。

重新启动机器后查看系统日志/var/log/messages,会发现类似的错误消息,比如内存不足:kill process 247 (sshd)。

还有一种情况会导致ping而不是ssh,那就是太多的网络连接耗尽了系统文件描述符资源,这里暂时不考虑。

在使用vip的高可用方案中,这种情况也容易出现脑裂的现象。

防止重要的系统进程触发(oom)机制被扼杀:可以将参数/proc/PID/oom_adj设置为-17,暂时关闭linux内核的OOM机制。内核将通过特定的算法为每个进程计算一个分数,以决定杀死哪个进程。每个流程的oom分数可以在/proc/PID/oom_score中找到。

我们认为重要的进程是ssh或一些监控守护进程,您可以根据自己的实际情况选择需要保护的进程。

 保护某个进程不被内核杀掉可以这样操作:

echo-17 ”/proc/$ PID/oom _ adj

您可以编写一个简单的脚本并将其部署在crontab上,以防止重要的进程被oom化。

pgrep -f "/usr/sbin/sshd" |在读取PID时;do echo-17 ”/proc/$ PID/oom _ adj;完成的

其中,“/usr/sbin/sshd”可以用一个你认为很重要的过程来代替,但匹配时要注意不要做错匹配。

1.流程的选定方法。

当内存耗尽时,ookiller会查看所有进程,并分别计算每个进程的分数。向得分最高的流程发送信号。

2.计算分数的方法。

相关信息

  • 在Linux系统中使用reconfig命令的说明

    Linux命令reconfig可以用来转换配置文件,主要用在XF86Config中。reconfig的使用也比较简单,本文就来介绍一下Linux系统reconfig命令的使用说明。...

    2021/11/23

  • Linux如何用命令清除Bash环境变量?

    在Linux系统中env 命令可以临时清空Bash环境变量,而不删除或者是卸载他们。当然Linux中情况Bash的命令不只env这一个,本文就来介绍一下,Linux怎么用命令清空Bash环境变量。...

    2021/11/23

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载

公众号