《自己动手写Docker》书摘之五: 增加容器资源限制
增加容器资源限制
上一节中,我们已经可以通过命令行mydocker run -ti的方式创建并启动容器,这一节我们将通过Cgroup对容器的资源进行控制。
这一节中我们将实现通过mydocker run -ti -m 100m -cpuset 1 -cpushare 512 /bin/sh的方式控制容器容器的内存和CPU配置。
定义Cgroups的数据结构
上一章中我们介绍了Cgroups包含的三个概念:
- cgroup hierarchy中的节点,用于管理进程和subsystem的控制的关系。
- subsystem 作用于hierarchy上的cgroup节点,并控制节点中进程的资源占用。
- hierarchy 将cgroup通过树状的结构串起来,并通过虚拟文件系统的方式暴漏给用户。
根据上面三个概念的关系,我们先创建出下面的数据结构:
packa