26.2. 资源分配模型简介
对于资源管理,systemd 使用控制组版本 2 (cgroups-v2)接口。
默认情况下,RHEL 8 使用 cgroups-v1。因此,您必须启用 cgroups-v2,以便 systemd 可以使用 cgroups-v2 接口进行资源管理。有关如何启用 cgroups-v2 的更多信息,请参阅 挂载 cgroups-v2。
要修改系统资源的发布,您可以应用以下一个或多个资源分发模型:
- Weights(权重)
通过添加所有子组的权重来分发资源,并根据与所有权重的总和相比的权重为每个子组分配一部分资源。
例如,如果您有 10 个
cgroups,每个权重值为 100,则总和为 1000,每个cgroup接收十分之一的资源。权重通常用于分发无状态资源。要调整控制组的权重,请使用 CPUWeight= 选项。
- Limits
cgroup可以最多可消耗配置的资源量,但您也可以过量使用资源。因此,子组的总限制可能会超过父cgroup的限制。要调整控制组的限制,请使用 MemoryMax= 选项。
- Protections
您可以为
cgroup设置受保护的资源量。如果资源使用率低于保护边界,内核将尽量不惩罚该cgroup,而支持竞争同一资源的其它cgroups。可以过量使用。要调整控制组的受保护的资源量,请使用 MemoryLow= 选项。
- Allocations
- 有限资源特定数量的独占分配,如实时预算。过量使用是可能的。