Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
cgroup有两个内存控制选项:
memory.use_hierarchy = 1:使用层次结构
memory.use_hierarchy = 0:根据on-topic使用平面层次结构
两者有什么区别?我想,等级就是等级,“扁平”在这里是什么意思?
编辑:我阅读了cgroup文档this answer解释了分层支持:
在上图中,启用了分级记帐,所有内存
e的用法,一直到根(即
c和根),其中已启用内存。请使用层次结构。如果其中一个
祖先超越了它的限制,回收算法从
祖先和祖先后代的任务。
它的意思是什么?
既然它的子能力被分配给祖先的能力之和,那么祖先怎么能超越它的极限呢?
为什么在祖先和孩子身上任务都被回收?我认为任务只分配给子任务,这些任务自动属于祖先。也就是说,“www浏览”有20%的容量;它的孩子是“教授”和“学生”,分别有15%和5%。最大值不能超过20%。为什么文件中有这样一个案例:
如果其中一个祖先超过了它的限制,那么回收算法
从祖先和后代的任务中恢复
祖先。

最佳答案

这里的层次结构意味着cgroup中嵌套了内存cgroup。你可以创建一个父cgroup p,它可以有一个子cgroup c。在p(比如p1和p2)和c(c1,c2)中可以有进程。当use_hierarchy=1时,p处的内存统计信息将显示p中所有进程对c的使用和使用总量,它还将说明p中的任何tmpf。
如果cgroup p超过限制,它可以从p1、p2和子cgroup c回收内存。如果c超过限制,它将从c1和c2回收内存。
我认为文档中不清楚的一点是,有些任务可以直接在p之下,而不在其子cgroup之下。

关于linux - 层次结构支持在cgroup中做什么? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17482210/

10-11 18:56