第 24 章 使用 cgroups-v2 控制应用程序的 CPU 时间分布
			有些应用程序占用太多的 CPU 时间,这可能会对您环境的整体健康状况造成负面影响。您可以将应用程序置于 控制组版本 2 (cgroups-v2) 中,并为这些控制组配置 CPU 限制。因此,您可以控制应用程序的 CPU 消耗。
		
关于如何控制分配给控制组群的 CPU 时间分布,用户有两种方法:
24.1. 挂载 cgroups-v2
				在启动过程中,RHEL 8 默认挂载 cgroup-v1 虚拟文件系统。要利用 cgroup-v2 功能限制应用程序的资源,请手动配置系统。您可以使用 systemd 控制系统资源的使用。您应该只在特殊情况下手动配置 cgroups 虚拟文件系统。例如,当您需要使用在 cgroup-v2 层次结构中没有对应的 cgroup-v1 控制器时。
			
先决条件
- 您有 root 权限。
流程
- 通过 - systemd系统和服务管理器系统,在系统引导期间将系统配置为默认挂载- cgroups-v2:- grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=1" - # grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="systemd.unified_cgroup_hierarchy=1"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这会向当前引导条目中添加必要的内核命令行参数。 - 向所有内核引导条目中添加 - systemd.unified_cgroup_hierarchy=1参数:- grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1" - # grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重启系统以使更改生效。
验证
- 验证 - cgroups-v2文件系统是否已挂载:- mount -l | grep cgroup - # mount -l | grep cgroup cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,seclabel,nsdelegate)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - cgroups-v2文件系统已成功挂载到- /sys/fs/cgroup/目录。
- 检查 - /sys/fs/cgroup/目录的内容:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 默认情况下, - /sys/fs/cgroup/目录也称为 root 控制组,提供接口文件(通过- cgroup启动)和特定于控制器的文件,如- cpuset.cpus.effective。此外,还有一些与- systemd相关的目录,如- /sys/fs/cgroup/init.scope、- /sys/fs/cgroup/system.slice和- /sys/fs/cgroup/user.slice。