美文网首页
CGroup 介绍

CGroup 介绍

作者: 无言大叔 | 来源:发表于2017-03-28 15:42 被阅读151次

    CGroup 介绍

    CGroup 是 Control Groups

    的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory

    i/o 等等) 的机制。2007 年进入 Linux 2.6.24 内核,CGroups 不是全新创造的,它将进程管理从 cpuset

    中剥离出来,作者是 Google 的 Paul Menage。CGroups 也是 LXC 为实现虚拟化所使用的资源管理手段。

    CGroup 是将任意进程进行分组化管理的 Linux 内核功能。CGroup 本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O

    或内存的分配控制等具体的资源管理功能是通过这个功能来实现的。这些具体的资源管理功能称为 CGroup 子系统或控制器。CGroup

    子系统有控制内存的 Memory 控制器、控制进程调度的 CPU 控制器等。运行中的内核可以使用的 Cgroup

    子系统由/proc/cgroup 来确认。

    CGroup 相关概念解释

    任务(task)。在 cgroups 中,任务就是系统的一个进程;

    控制族群(control group)。控制族群就是一组按照某种标准划分的进程。Cgroups

    中的资源控制都是以控制族群为单位实现。一个进程可以加入到某个控制族群,也从一个进程组迁移到另一个控制族群。一个进程组的进程可以使用

    cgroups 以控制族群为单位分配的资源,同时受到 cgroups 以控制族群为单位设定的限制;

    层级(hierarchy)。控制族群可以组织成 hierarchical 的形式,既一颗控制族群树。控制族群树上的子节点控制族群是父节点控制族群的孩子,继承父控制族群的特定的属性;

    子系统(subsystem)。一个子系统就是一个资源控制器,比如 cpu 子系统就是控制 cpu 时间分配的一个控制器。子系统必须附加(attach)到一个层级上才能起作用,一个子系统附加到某个层级以后,这个层级上的所有控制族群都受到这个子系统的控制。

    也就是说任务就是系统的一个进程,多个任务组成控制族群,多个控制族群组成一个层级,而每个层级都要有一个子系统控制调度。

    相关文章

      网友评论

          本文标题:CGroup 介绍

          本文链接:https://www.haomeiwen.com/subject/rubjottx.html