cgroup memory.limit_in_bytes :是 VIRT 还是 RES 受限?

rei*_*red 9 memory linux fedora rss

假设“top”实用程序使用的 VIRT/RES/SHM 术语:

cgroup 是否memory.limit_in_bytes适用于 VIRT 或 RES 内存大小?我问是因为在 Fedora 23 中,在我看来,RES(常驻)内存受 cgroup 限制。然后我安装了 Fedora 25,突然间我得到了以前没有发生过的频繁的进程终止(一些 dmesg 输出包含在底部以说明问题)。我有一种预感,在 Fedora 23 和 25 之间,cgroup 改变了行为,现在似乎限制了 VIRT 而不是 RES 内存使用。

谁能证实我的怀疑?有没有办法恢复旧的行为?我在 cgroup 内核文档中四处搜索,但没有找到任何东西,可能是因为我搜索的术语不正确。

dmesg 输出:

Tue Jun 20 01:46:12 2017: Memory cgroup out of memory: Kill process 787 (Web Content) score 204 or sacrifice child
Tue Jun 20 01:46:12 2017: Killed process 787 (Web Content) total-vm:14151032kB, anon-rss:5000940kB, file-rss:6132kB, shmem-rss:115956kB
Run Code Online (Sandbox Code Playgroud)

小智 4

它适用于用户内存,包括文件缓存。

在此处检查 memory.limit_in_bytes https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html

memory.limit_in_bytes 设置用户内存的最大数量(包括文件缓存)。

存在:

cache:页面缓存,包括tmpfs(shmem),以字节为单位

rss:匿名和交换缓存,不包括 tmpfs (shmem),以字节为单位