1.2. 子系统、层级、控制组群和任务的关系
任何单一子系统(比如 cpu)最多可附加到一个层级中。
cpu 子系统永远无法附加到两个不同的层级。
单一层级可附加一个或者多个子系统。
cpu 和 memroy 子系统(或者任意数目的子系统)都可附加到单一层级中,只要每个子系统不再附加到另一个层级即可。
每次在系统中创建新层级时,该系统中的所有任务都是那个层级的默认 cgroup(我们称之为 root cgroup)的初始成员。对于您创建的任何单一层级,该系统中的每个任务都可以是那个层级中唯一一个 cgroup 的成员。单一任务可以是在多个 cgroup 中,只要每个 cgroup 都在不同的层级中即可。只要某个任务成为同一层级中第二个 cgroup 的成员,就会将其从那个层级的第一个 cgroup 中删除。一个任务永远不会同时位于同一层级的不同 cgroup 中。
cpu 和 memory 子系统都附加到名为 cpu_and_mem 的层级中,且 net_cls 子系统是附加到名为 net 的层级中,那么运行的 httpd 进程可以是 cpu_and_mem 中任意 cgroup 的成员,同时也是 net 中任意 cgroup 的成员。
httpd 进程所在 cpu_and_mem 中的 cgroup 可将其 CPU 时间限制为分配给其它进程时间的一半,并将其内存用量限制为最多 1024 MB。另外,net 中的 cgroup 还可将其传输速率限制为 30 MB/秒。
该系统中的任意进程(任务)都将自己分支创建子进程(任务)。该子任务自动成为其父进程所在 cgroup 的成员。然后可根据需要将该子任务移动到不同的 cgroup 中,但开始时它总是继承其父任务的 cgroup(进程术语中称其为“环境”)。
cpu_and_mem 层级中名为 half_cpu_1gb_max 的 cgroup 成员的任务,以及 net 层级中 cgroup trans_rate_30 的成员。当 httpd 进程将其自身分成几个分支时,其子进程会自动成为 half_cpu_1gb_max cgroup 和 trans_rate_30 cgroup 的成员。它会完全继承其父任务所属的同一 cgroup。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.