I/O controller 这篇文章提到了 control group,看起来它是 Linux 内核中一个比较重要的概念,于是去找了找资料,给自个科普科普
最早 control group 是叫做 "Containers" (06年9月),利用 configfs 作配置.
"Containers" 着眼于资源的分配,有两个重要概念:1. subsystem, 内核可以给进程提供的服务/资源
2. container, 一个进程组,成员共享同样的一个或多个子系统分配限制。containers 是层次的,一个 container 可以 hold 多个 container
它的最可取之处是创建了一个资源分配的框架,其它开发者可以利用这个框架去开发自己的资源分配patch,比如上回提到的磁盘设备。
后来不知道为什么没有采用 configfs,自己搞了一个 container filesystem.
最后在 2.6.24 内核(08年1月)中被正式合并进入主线,被改名为 control group 或简写为 cgroup. 详细介绍在 内核源代码文档目录中的cgroups.txt 。
刚刚进入 2.6.24 的时候,只有 cpusets(绑定cpu/memory node) 和 CFS group scheduling( cpu 带宽分配) 两个资源。2.6.25 又引入了 memory resource.
去搜索一下 cgroup,可以看到有好多有意思的 patch,比如 per cgroup 的 OOM killer,甚至 swap cgroup 等等.
Topic:
技术
最新评论