实例内存未耗尽时触发 Out Of Memory

现象描述

Linux 云服务器在内存使用率未占满的情况下触发了 OOM(Out Of Memory)。如下图所示:

实例内存未耗尽时触发 Out Of Memory

可能原因

可能原因处理措施
内存使用率过高检查内存使用率是否过高
进程数超限检查进程数是否超限
系统可用内存低于 min_free_kbytes 值检查系统可用内存是否低于 min_free_kbytes 值

故障处理

检查内存使用率是否过高

参见 内存使用率过高问题处理 ,查看实例是否内存使用率过高。若实例内存使用率正常,请 检查进程数是否超限。

检查进程数是否超限

参见 日志报错 fork:Cannot allocate memory,核实进程数是否超限。若总进程数未超限,则执行下一步。

登录云服务器,执行以下命令查看 min_free_kbytes 值。

sysctl -a | grep min_free

min_free_kbytes 值单位为 kbytes,下图所示 min_free_kbytes = 1024000 即为1GB。

实例内存未耗尽时触发 Out Of Memory

执行以下命令,使用 VIM 编辑器打开 /etc/sysctl.conf 配置文件。

vim /etc/sysctl.conf

按 i 进入编辑模式,修改 vm.min_free_kbytes 配置项。若该配置项不存在,则直接在配置文件中增加即可。

说明

建议修改 vm.min_free_kbytes 值为不超过总内存的1%即可。

按 Esc 并输入 :wq 后,按 Enter 保存并退出 VIM 编辑器。

执行以下命令,使配置生效即可。

sysctl -p

检查系统可用内存是否低于 min_free_kbytes 值

可能是由系统可用内存低于 min_free_kbytes 值导致。

min_free_kbytes 值表示强制 Linux 系统最低保留的空闲内存(Kbytes),

如果系统可用内存低于设定的 min_free_kbytes 值,

则默认系统启动 oom-killer 或强制重启。具体行为由内核参数 vm.panic_on_oom 值决定:

若 vm.panic_on_oom=0,则系统会提示 OOM,并启动 oom-killer 杀掉占用最高内存的进程。

若 vm.panic_on_oom =1,则系统会自动重启。

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/4488.html

赞 (0)
打赏 微信扫一扫 微信扫一扫
上一篇 2025年4月3日 下午8:40
腾讯云使用 MTR 分析网络延迟及丢包
下一篇 2025年5月19日 下午4:26

相关推荐

  • python升级带来的yum异常问题:File “/usr/bin/yum”, line 30

    今天给大家带来一个关于python的问题。 问题: $ yum File “/usr/bin/yum”, line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax 原因: 这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一…

    服务器运维 2019年7月23日
    3.9K00
  • centos安装wdcp教程及问题解决方案

    wdcp是什么 wdCP是WDlinux Control Panel的简称,是一套通过WEB控制和管理服务器的Linux服务器管理系统以及虚拟主机管理系统,旨在易于使用Linux系统做为我们的网站服务器系统,以及平时对Linux服务器的常用管理操作,均可在wdCP的后台里操作完成.使用wdCP,通过WEB方式就可以查看服务器情况,资源利用率,系统负载,内存使…

    2018年9月14日
    3.2K00
  • OneinStack自动部署Let’s Encrypt证书 | Linux教程

    Let’s Encrypt是一个由电子前哨基金会、Mozilla基金会、Akamai、密歇根大学、思科联合发起的一个项目。它旨在为站长提供一个免费的、完全自动化的证书申请过程,从而让整个互联网都能享受到HTTPS加密。Let’s Encrypt的证书申请过程非常简单、安全、快速、自动化并且免费。Let’s Encrypt是一个中间CA,它的CA证…

    服务器运维 2018年11月21日
    2.9K00
  • 如何确认已经卸载数据盘并可以新建自定义镜像-linux教程-学派吧

    本篇文章给大家带来的内容是关于如何确认已经卸载数据盘并可以新建自定义镜像,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 自定义镜像 FAQ 如何查看数据盘? 您可以通过 df 命令查看数据盘的使用情况,以及文件系统被挂载的位置。例如:df –lh 您可以通过 fdisk 命令获取数据盘的分区情况。例如:fdisk -l 如何卸载和删除 di…

    服务器运维 2018年11月24日
    2.5K00
  • 关于linux中sed命令的示例代码分享教程-学派吧

    如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624 商祺云-阿里代理、景安代理、西部代理 简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重…

    服务器运维 2019年1月14日
    2.1K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部