文章目录
一、CGroup简述
1、定义
CGroup 是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物力资源的机制:它以分组的形式对进程使用系统资源的行为进行管理和控制。即用户可以通过CGroup对所有进程进行分组,再对该分组整体进行资源的分配和控制。
2、组成与基础概念
2.1 control group 控制族群
一组按照某种标准划分的进程,任何资源控制都以其为单位实现。
一个进程组的进程可以使用 cgroups 以控制族群为单位分配的资源,同时受到 cgroups 以控制族群为单位设定的限制。
2.2 task 任务
即一个进程
2.3 hierarchy 层级树
控制族群可以组织成 hierarchical 的形式,即一棵控制族群树。
在树中包含所有进程,每个进程属于一个节点,树的每一个节点为一个进程组。
同样的每棵树会与零个或多个子系统相关联
如果新挂载的cgroup关联的hierachy与系统中存在的hierarchy完全一样,那么cgroupfs会拒绝挂载。如果没有匹配到相同的hierarchy,但新挂载hierachy声明的资源正在被已经存在的hierarchy使用,挂载会报-EBUSY错误。
2.4 subsystem 子系统
cgroup提供的是一种机制,而具体的策略是通过子系统来完成的,具体的资源管理功能称为 CGroup 子系统,具