第 25 章 使用带有 systemd 的控制组群版本 1
您可以使用 systemd 系统和服务管理器及其提供的实用程序来管理 cgroups。这也是 cgroups 管理的首选方式。
25.1. 控制组群版本 1 中的 systemd 角色 复制链接链接已复制到粘贴板!
RHEL 8 通过将 cgroup 层次结构与 systemd 单元树绑定,将资源管理设置从进程级移到应用程序级。因此,您可以使用 systemctl 命令或通过修改 systemd 单元文件来管理系统资源。
默认情况下,systemd 系统和服务管理器使用 slice、scope 和 service 单元来整理和整理控制组中的进程。systemctl 命令可以通过创建自定义 片段 来进一步修改此结构。systemd 还会在 /sys/fs/cgroup/ 目录中自动挂载重要内核资源控制器的层次结构。
三种 systemd 单元类型用于资源控制:
Service -
systemd根据单元配置文件启动的进程或一组进程。服务封装指定的进程,以作为一个集合启动和停止。服务使用以下方法命名:<name>.service
<name>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Scope - 外部创建的进程组。范围封装通过
fork()函数由任意进程启动和停止的进程,然后在运行时由systemd注册。例如,用户会话、容器和虚拟机被视为范围。范围命名如下:<name>.scope
<name>.scopeCopy to Clipboard Copied! Toggle word wrap Toggle overflow slice - 一组分级组织单元。片段组织了一个分级,其中放置范围和服务。实际的进程包含在范围或服务中。slice 单元的每个名称对应层次结构中的位置的路径。短划线 ("-") 字符充当了分隔符的作用,它把路径组件从
-.sliceroot slice 中分隔。在以下示例中,包含进程的服务和范围将放置在没有其自身进程的片段中:<parent-name>.slice
<parent-name>.sliceCopy to Clipboard Copied! Toggle word wrap Toggle overflow parent-name.slice是parent.slice的子分片,它是-.sliceroot 片段的子分片。parent-name.slice可以有自己的子slice 名为parent-name-name2.slice,以此类推。
service、scope 和 slice 单元直接映射到控制组层次结构中的对象。激活这些单元后,它们直接映射到从单元名称构建的控制组路径。
控制组群层次结构示例
包含进程的服务和范围放置在没有其自身进程的片段中。