欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux下面的OOM

程序员文章站 2022-06-05 20:45:14
...

什么是OOM

OOM(Out Of Memory)机制为Linux内核中一种自我保护机制,当系统分配不出内存时(触发条件)会触发这个机制,由系统在已有进程中挑选一个占用内存较多,回收内存收益最大的进程杀掉来释放内存
相关日志:/var/log/messages

解决方法

①Linux的overcommit配置
Linux对大部分申请内存的请求都回复"yes",以便能跑更多更大的程序。因为申请内存后,并不会马上使用内存。这种技术叫做Overcommit。

Overcommit和下面两个vm的配置有关系。

vm.overcommit_ratio 
vm.overcommit_memory

overcommit_memory

overcommit_memory的值 含义
1 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
-
2 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
-
3 表示内核允许分配超过所有物理内存和交换空间总和的内存

文件路径:/proc/sys/vm/overcommit_memory

②如果运行程序出现此类错误,可以尝试使用管理员权限运行(sudo)

相关标签: Linux