我试图了解 cgroup 和命名空间是如何工作的。我已经能够在示例 cgroup 中执行示例程序并查看如何控制内存资源。
我有一个示例 Cgroup,内存限制为 8MB (memory.limit_in_bytes + memory.memsw.limit_in_bytes)。而且,我有一个简单的 C 程序,它以 1MB 块的形式分配内存。每次我在示例 Cgroup 中运行该程序时,它都会在分配 3MB 后被杀死。我试图理解当内存 + 交换限制设置为 8MB 时为什么会出现这种情况。
查看此 Cgroup 的详细内存.stat,有一个字段“total_inactive_anon”报告一定数量的字节。当我将其添加到程序分配的 3MB 中时,总计刚刚超过 7MB。我想知道这是否是程序没有获得超过3MB内存的原因。但是,我无法完全理解“total_inactive_anon”的含义,以及它是否与程序分配的内存分开。
如果您有任何指导,我将不胜感激。