在深入到cgroup的代码分析之前.先来了解一下cgroup中涉及到的几个概念:
1:cgroup:
它的全称为control group。即一组进程的行为控制,比如,我们限制进程/bin/sh的CPU使用为20%。我们就可以建一个cpu占用为20%的cgroup。然后将/bin/sh进程添加到这个cgroup中。当然,一个cgroup可以有多个进程。
2:subsystem:
它类似于我们在netfilter中的过滤hook。比如上面的CPU占用率就是一个subsystem。简而言之,subsystem就是cgroup中可添加删除的模块。在cgroup架构的封装下为cgroup提供多种行为控制,subsystem在下文中简写成subsys。
3: hierarchy:
它是cgroup的集合,可以把它理解成cgroup的根。cgroup是hierarchy的结点。还是拿上面的例子:整个cpu占用为100%,这就是根,也就是hierarchy;然后,cgroup A设置cpu占用20%,cgroup B点用50%,cgroup A和cgroup B就是它下面的子层cgroup。