为什么当进度允许内存超过cgroup限制时,cgroup的内存子系统使用oom-killer而不是返回内存分配失败?

kry*_*osx 14 linux redhat linux-kernel cgroups

我们使用cgroup limit procedure使用更多的资源.但是,当内存超过cgroup的限制时,它会终止进程.为什么cgroup的内存子系统使用oom-killer而不是返回内存分配失败当进度允许内存超过cgroup限制时?

joe*_*joe 6

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

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