16

我们使用 cgroup 限制程序使用更多资源。但是,当 cgroup 中的内存超过限制时,它会杀死进程。为什么 cgroup 的内存子系统使用 oom-killer 而不是在进度允许内存超过 cgroup 限制时返回内存分配失败?</p >

4

1 回答 1

8

看来 cgroups 可以使用 oom-killer 或暂停进程(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html)。但是使用 ulimit,分配通常会失败。

一些未解决的问题仍然存在:是否有办法让 cgroups 拒绝进程内存(从 malloc 返回 NULL)?或者有没有办法让ulimit拒绝物理内存(-m)而不仅仅是虚拟(-v)?

于 2015-04-20T02:56:56.703 回答