首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当内核空间耗尽时,OOM杀手会被触发吗?

问当内核空间耗尽时,OOM杀手会被触发吗?
EN

Unix & Linux用户
提问于 2020-06-15 06:38:53
回答 1查看 521关注 0票数 1

我们知道如果用户空间程序保留malloc(),它最终可能会触发OOM杀手。但是内核空间呢?当内核空间内存用完时,会不会触发OOM杀手释放内存?谢谢

EN

回答 1

Unix & Linux用户

发布于 2020-06-15 07:50:10

默认情况下,在Linux上内核分配和用户空间分配之间有一个重要的区别(每当OOM杀手成为一个因素时,这都适用)。内核内存分配函数分配地址空间和物理页,这样当分配函数返回时,调用方知道返回的任何有效指针都是立即可用的。在用户空间中,内存分配分配地址空间,默认情况下只在必要时分配页面(这是OOM杀手发挥作用的时候)。

换句话说,内核内存分配永远不允许超额提交。

内核内存分配可能最终触发OOM杀手,从而释放分配给用户空间的页面。这方面有很多条件,因为这样的分配可能是在无法输入I/O或无法重新输入文件系统的情况下进行的,请参阅全球伙伴关系司旗帜文件获取详细信息。还有其他可用于内核分配的回收机制,用于缓存等;当内核耗尽内存时,它可以刷新这些机制(在某些情况下)以恢复这些机制。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/592953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档