之前在学习docker的时候接触到了Cgroups的相关概念,下面将总结一些 hierarchy层级树(cgroup树)相关知识
Cgroups组件
在学习cgroup之前需要了解cgroups的三个组件
控制组
一个cgroups包含一组进程,并可以在这个cgroups上增加Linux subsystem的各种参数配置,将一组进程和一组subsystem关联起来
subsystem 子系统
是一组资源控制模块,可以通过lssubsys -a命令查看当前内核支持哪些subsystem
subsystem作用于hierarchy的cgroup节点,并控制节点中进程的资源占用
hierarchy 层级树
主要功能是把cgroups串成一个树型结构,使cgruops可以做到继承。也就是说将cgroup通过树状结构串起来,通过虚拟文件系统的方式暴露给用户
hierarchy 层级树
hierarchy 一个hierarchy可以理解为一棵cgroup树,树的每个节点就是一个进程组,每棵树都会与零到多个subsystem关联。
在一颗树里面,会包含Linux系统中的所有进程,但每个进程只能属于一个节点(进程组)。
系统中可以有很多颗cgroup树,每棵树都和不同的subsystem关联,一个进程可以属于多颗树,即一个进程可以属于多个进程组,只是这些进程组和不同的subsystem关联。目前Linux支持12种subsystem,如