3.5. 设定 cgroup 参数


如要修改控制群组参数,您可以编写 /etc/cgconfig.conf 或者使用 cgset 指令。 重启后,对 /etc/cgconfig.conf 的更改也将保留并运行,但是cgset 仅能对当前会话的 cgroup 参数做出修改。

修改 /etc/cgconfig.conf

您可以在 /etc/cgconfig.confGroups 部分设定管控器参数。 组条目使用以下句法定义:
group name {
[permissions]
    controller {
        param_name = param_value;
        …
    }
    …
}
请用您 cgroup 的名字替代 namecontroller 代表您希望修改的管控器名称。这应当是一个您自己挂载的管控器,而不是 systemd 自动挂载的默认管控器。用您希望更改的管控器参数和其新数值替代 param_nameparam_value。请注意,permissions 部分是可选择项。如要给组条目定义权限,请使用以下句法:
perm {
    task {
        uid = task_user;
        gid = task_group;
    }
    admin {
       uid = admin_name;
       gid = admin_group;
    }
}

注意

请重启 cgconfig 服务,让 /etc/cgconfig.conf 的更改生效。重启此服务会重建配置文件中指定的层级,但并不会影响所有挂载层级。您可以通过执行 systemctl restart 指令来重启服务,但是,建议您先停止 cgconfig
~]# systemctl stop cgconfig
然后打开并编写配置文件。保存更改后,您可以用以下指令再次启动 cgconfig
~]# systemctl start cgconfig

使用 cgset 指令

获得修改相关 cgroup 的权限后,请运行用户账户中的 cgset 指令来设定管控器参数。请仅对手动挂载的管控器使用此指令。
cgset 的句法为:
cgset -r parameter=value path_to_cgroup
其中:
  • parameter 是要设定的参数,它与给定 cgroup 目录中的文件对应;
  • value 是参数值;
  • path_to_cgroup 是“与层级的根相对”的 cgroup 路径。
cgset 设定的值可能会受限于一个特定层级所设定的更高值。例如,在一个系统中,如果 group1 被限定仅可使用 CPU 0,那您就不能设定 group1/subgroup1 使用 CPU 0 和 1,或者仅使用 CPU 1。
您也可以使用 cgset 将一个 cgroup 的参数复制到另一个已有 cgroup 中。使用 cgset 复制参数的句法是:
cgset --copy-from path_to_source_cgroup path_to_target_cgroup
其中:
  • path_to_source_cgroup 是要复制其参数的 cgroup 路径,相对层级的根群组;
  • path_to_target_cgroup 是目标 cgroup 的路径,相对层级的根群组。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.