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)
上一篇: 鱼柳怎么做好吃,原来不用油炸还可以这样做
下一篇: Ubuntu 下切换Python版本