26.2. 内核资源控制器简介
内核资源控制器启用控制组的功能。RHEL 10 支持用于 控制组版本 1 (cgroups-v1)和 控制组版本 2 (cgroups-v2)的各种控制器。
资源控制器也称为控制组子系统,是一个代表单一资源的内核子系统,如 CPU 时间、内存、网络带宽或磁盘 I/O。Linux 内核提供由 systemd 服务管理器自动挂载的一系列资源控制器。
您可以在 /proc/cgroups 文件中找到当前挂载的资源控制器的列表。
- 可用于
cgroups-v1的控制器 -
blkio:设置对块设备的输入/输出访问的限制。 -
CPU:调整控制组任务的默认调度程序的参数。cpu控制器与cpuacct控制器一起挂载在同一挂载上。 -
cpuacct:创建控制组中任务使用的 CPU 资源自动报告。cpuacct控制器与cpu控制器一起挂载在同一挂载上。 -
cpuset:Restricts 控制组任务仅在指定 CPU 子集上运行,并指示任务仅在指定的内存节点上使用内存。 -
设备:控制对控制组中任务的访问。 -
freezer:暂停或恢复控制组中的任务。 -
Memory :设置控制组中任务的
内存使用限制,并针对这些任务使用的内存资源生成自动报告。 -
net_cls:使用类标识符(classid)标记网络数据包,使 Linux 流量控制器(tc命令)能够识别源自特定控制组任务的数据包。net_cls子系统net_filter(iptables) 也可使用此标签对此类数据包执行操作。 -
net_filter:使用防火墙标识符(fwid)标记网络套接字,允许 Linux 防火墙识别源自特定控制组任务的数据包(通过使用iptables命令)。 -
net_prio:设置网络流量的优先级。 -
PIDs:为控制组群中的多个进程及其子进程设置限值。 -
perf_event:通过perf性能监控和报告工具对任务进行分组。 -
RDMA:设置控制组群中的 Remote Direct Memory Access/InfiniBand 特定资源的限制。 -
HugeTLB:根据控制组群中的任务限制大量虚拟内存页面的使用。
-
- 可用于
cgroups-v2的控制器 -
io:设置对块设备的输入/输出访问的限制。 -
Memory :设置控制组中任务的
内存使用限制,并针对这些任务使用的内存资源生成自动报告。 -
PIDs:为控制组群中的多个进程及其子进程设置限值。 -
RDMA:设置控制组群中的 Remote Direct Memory Access/InfiniBand 特定资源的限制。 -
CPU:调整控制组任务的默认调度程序的参数,并创建控制组中任务使用的 CPU 资源自动报告。
-
cpuset: 限制控制组任务仅在指定 CPU 子集上运行,并指示任务仅在指定的内存节点上使用内存。仅支持具有新分区功能的核心功能(cpus{,.effective},mems{,.effective})。 -
perf_event:通过perf性能监控和报告工具对任务进行分组。perf_event在 v2 层次结构上自动启用。
-
重要
资源控制器可以在 cgroups-v1 层次结构或 cgroups-v2 层次结构中使用,不能同时在两者中使用。