当前位置: 首页 > news >正文

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

现象描述

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



可能原因

可能原因

处理措施

内存使用率过高

检查内存使用率是否过高

进程数超限

检查进程数是否超限

系统可用内存低于 min_free_kbytes 值

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

故障处理

检查内存使用率是否过高

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

检查进程数是否超限

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

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

sysctl -a | grep min_free

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



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

vim /etc/sysctl.conf

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

说明

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

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

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

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,则系统会自动重启。


http://www.mrgr.cn/news/75345.html

相关文章:

  • 嵌入式课程day14-C语言指针进阶
  • 低代码集成多方API的简单实现
  • 世界坐标系、相机坐标系、图像物理坐标系、像素平面坐标系
  • 搭建Python2和Python3虚拟环境
  • 制作图片木马
  • 【JavaScript】
  • 从模型评估到绘制ROC曲线:用Python实现全面性能分析
  • C++中的std::tuple和std::pair
  • SciPy 稀疏矩阵
  • (undone) MIT6.S081 2023 学习笔记 (Day4: LAB3 page tables)
  • ASR 项目调试记录
  • 【蓝牙协议栈】【BLE】【IAS】蓝牙立即警报服务
  • 前端基础的讲解-JS(12)
  • 深入理解Flutter生命周期函数
  • SQLI LABS | Less-47 GET-Error Based-String-ORDER BY CLAUSE
  • 2024下半年软考架构师真题 回忆整理
  • 2024华为java面经
  • 2.5 以太网拓扑结构演变
  • SQL 连接(JOIN)的深入解析
  • 姓名改成商标名称,李子柒已成身份证名字!
  • 硬件工程师之电子元器件—二极管(5)之肖特基二极管
  • 英语中常用的短语搭配及规律
  • javassmmsyql医院管理的设计与实现87641-计算机毕业设计项目选题推荐(附源码)
  • Java面试要点19 - Java中设计抽象类的原则
  • 【C++动态规划 最长公共子序列】1035. 不相交的线|1805
  • python 编程 在 Matplotlib 中 默认预定的所有颜色,可以使用多种方法来指定颜色,包括预定义的颜色名称、十六进制颜色代码、