cgroup 中的层次结构支持有什么作用?

cgroup 中的层次结构支持有什么作用?

cgroup有 2 个内存控制选项:

  • memory.use_hierarchy = 1:使用层次结构
  • memory.use_hierarchy = 0:使用扁平层次结构,根据这个答案

两者有什么区别?我想,等级就是等级,这里的“扁平”是什么意思呢?

我阅读了 cgroup 文档这里解释了分层支持:

在上图中,启用分层记帐后,e 的所有内存使用量都会记入其祖先,直到启用了 memory.use_hierarchy 的根(即 c 和 root)。如果祖先之一超出其限制,回收算法将从祖先及其子代中的任务中回收。

  • 是什么意思accounted to its ancestors up until the root
  • 既然它的孩子容量被分配给了祖先的容量,祖先怎么能超过它的限制呢?
  • 为什么祖先和孩子都会回收任务?我认为任务只分配给孩子们,这些任务自动属于祖先。即“WWW浏览”有20%的容量;它的孩子是“教授”和“学生”,分别占 15% 和 5%。最大值永远不能超过 20%。为什么文档中有一个案例说:

如果祖先之一超出其限制,回收算法将从祖先及其子代中的任务中回收。

相关内容