当内存不足时,cgroup v2 中进程的终止顺序是怎样的?

当内存不足时,cgroup v2 中进程的终止顺序是怎样的?

我在 Ubuntu 22.04 上使用 cgroup v2 来限制组中的用户。我想知道内存不足(OOM)时如何终止进程。

举个例子:

电脑有100G内存。我有一个由 4 个用户组成的组——A、B、C 和 D。该组的内存限制为 80G,即所有 4 个用户都不能超过 80G。

首先,用户A使用50G内存运行一个程序(进程a)。过了一会儿,B使用了20G(b),然后C又使用了20G(c)。现在D开始运行一个程序需要20G(d)。

在上述情况下,当OOM发生时,谁的进程会因为内存限制而被杀死呢? a、b、c、d 哪一个会先被杀死?

我发现拥有最多内存的进程会在cgroup v1中被杀死(https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html)。 cgroup v2 中也有吗?

感谢你的帮助。

相关内容