cGroups cgred 守护进程并不总是移动子进程,父进程暂时处于错误的组中

cGroups cgred 守护进程并不总是移动子进程,父进程暂时处于错误的组中

所以我正在一些服务器上设置 CGroups,并且我大量使用文档来完成这项工作。

我在 Fedora 2.8.1 节中遇到了这个问题资源管理指南(同样奇怪的是这个红帽指南

The entry now specifies that when the user named maria uses the ftp command, the process is automatically moved to the /usergroup/staff/ftp cgroup in the hierarchy that contains the devices subsystem. Note, however, that the daemon moves the process to the cgroup only after the appropriate condition is fulfilled. Therefore, the ftp process might run for a short time in the wrong group. Furthermore, if the process quickly spawns children while in the wrong group, these children might not be moved.

这在某种程度上被列为旁注,但这似乎是一个非常大的问题,有点破坏了 cGroups 的整个意义。所以在我进一步设置这些之前,有没有办法解决这个问题?或者我的思维过程没有正确处理这个问题?

建议像这样使用 cgexec 在 cgroup 中启动进程:

cgexec -g cpu:group1 lynx http://www.redhat.com

但这似乎很难在整个系统范围内实施,因此每个流程都像这样启动。

我是不是漏掉了什么,还是真的没有其他选择?这似乎也可能是一个文档错误,因为 fedora 指南使用 redhat.com 链接作为示例,这让我认为文档已经过时了。

干杯!

答案1

在 redhat 上,我曾经libcgroup-pam将用户进程移至 cgroup,这libcgroup-pam对我来说是可行的,因为它将用户会话进程设置为 cgroup,然后所有其他进程都是子进程,并且默认位于 cgroup 中

相关内容