我正在寻找一种在资源有限的 Ubuntu 14.04 桌面系统上配置 cgroups 的一致方法。
我想要做的事情:
- 创建几个分配有限内存和 CPU 的组,用于特定任务
- 重启时自动启用这些组
- 为每个组分配特定的命令/程序
我了解 cgroup 配置,以及如何使用 cgexec 为特定组启动进程。问题是下一步。
我已经构建了一个可以工作的 /etc/cgconfig.conf 文件,我能够使用 cgconfigparser 成功解析并激活该文件以获取已配置的 cgroup。然而,这是我所能做到的。
- 我找不到在系统启动时正确读取和解析 /etc/cgconfig.conf 的服务。当前的 cgroup 软件包似乎不包含这样的服务。
- 据我所知,/etc/cgconfig.conf 附带一个 /etc/cgrules.conf 文件,该文件描述了在某个组中默认如何启动进程。我无法识别解析它的服务或机制。如果没有此功能,我需要使用 cgexec 启动所有进程以将它们放入 cgroup 中。
我尝试使用 cgmanager,但该服务似乎也无法从 /etc/cgconfig.conf 进行配置。总的来说,我发现很难找到有关如何在 Ubuntu 桌面系统上配置和使用 cgroups 的信息。
那么,有人能给我指出正确的方向吗?我需要安装什么服务,它遵循哪些配置文件?
需要说明的是:我不是在寻找容器。而是在单个专用系统上构建资源处理。
非常感谢 :)
答案1
# vi /etc/cgrules.conf
tomcat7:wkhtmltopdf cpu,cpuset group1
# cgrulesengd -d -v -f /var/log/cgrulesengd.log &
# cat /var/log/cgrulesengd.log
CGroup Rules Engine Daemon log started
Current time: Thu Jan 15 16:04:20 2015
Opened log file: /var/log/cgrulesengd.log, log facility: 0, log level: 7
Proceeding with PID 28569
Rule: tomcat7:wkhtmltopdf
UID: 500
GID: N/A
DEST: group1
CONTROLLERS:
cpu
cpuset
Started the CGroup Rules Engine Daemon.