我正在尝试通过以下方式创建 cgroup 层次结构本教程
- 我
libcgroup
使用安装包
并且安装成功。dnf install libcgroup
cgconfig
我尝试通过运行来 检查配置的状态
我得到了错误systemctl status cgconfig
Unit cgconfig.service could not be found.
- 我尝试启用该服务,但遇到了同样的错误。
- 我尝试
libcgroup
再次安装该软件包,但我得到了Nothing to do!
,表明它已经安装了。
我找不到该文件/etc/cgconfig.conf
。我安装了该chkconfig
命令,但看来您是从/etc/rd.d/init.d
目录中的服务启动的(https://www.howtoing.com/chkconfig-command-examples/),并且我的系统上没有这样的目录。
我使用的是 Fedora 33。任何建议或帮助将不胜感激。
答案1
您正在使用适用于 Fedora 的教程15,仍然使用 cgroups 实现版本 1。在 Fedora 31 中,引入了 cgroups 版本 2 并默认启用。
该chkconfig
命令和/etc/rc.d/init.d
目录适用于经典的 SysVinit 风格的服务,在 Fedora 引入之后systemd
(也在 Fedora 15 中),它已经尽可能地从旧的 SysVinit 风格迁移。看起来在 Fedora 33 中,从 SysVinit 风格的迁移已经基本完成,默认情况下不再安装它的兼容层,因此/etc/rc.d/init.d
目录不再存在。
看斯蒂芬·基特的回答当前推荐的使用 cgroup 的方式。但如果您想要/需要使用旧样式:
在 Fedora 33 中,该cgconfig
服务现在位于软件包中libcgroup-tools
,并且默认情况下有一个 systemd 样式的cgconfig.service
文件,因此您不需要chkconfig
.为了使旧教程正常工作,您可能还必须使用内核引导参数回退到 cgroups v1 systemd.unified_cgroup_hierarchy=0
。 (免责声明:这在 Fedora 31 和 32 中有效,不确定 33 是否有效。)
答案2
您正在阅读的文档是为 Fedora 15 编写的,基本上已经过时了。
在 Fedora 33 中,默认使用 cgroup v2 层次结构,并由 systemd 管理。您可以使用检查它systemd-cgls
,并监控它systemd-cgtop
。要在层次结构中创建新的“切片”并在其中运行命令,请使用systemd-run
。
单位也可以被赋予自己永久的资源限制;多种选择可用于直接指定限制(CPUQuote
等MemoryLimit
),并且切片也可以显式指定(Slice
)。