Назад | Перейти на главную страницу

cGroups cgred daemon не всегда перемещает дочерние процессы, родительский процесс временно находится в неправильной группе

Итак, я нахожусь в процессе настройки CGroups на нескольких серверах, и я довольно активно использую документацию для этого.

Я наткнулся на это в разделе 2.8.1 Fedora. Руководство по управлению ресурсами (также как ни странно в Это руководство RedHat:

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 в качестве примера, который заставляет меня думать, что документ устарел.

Ура!

на redhat я использовал libcgroup-pam переместить пользовательские процессы в cgroup, libcgroup-pam действительно работает для меня, потому что он устанавливает процесс сеанса пользователей в cgroup, а затем все другие процессы являются дочерними и по умолчанию находятся в cgroups