Ядро документация обеспечивает общий охват контрольных групп с примерами.
cgroups-bin
Пакет (который зависит от libcgroup1
) уже предусмотрено распределение должно быть в порядке.
Конфигурация выполняется путем редактирования следующих двух файлов:
/etc/cgconfig.conf
Используется libcgroup для определения контрольных групп, их параметров и точек монтирования.
/etc/cgrules.conf
Используется libcgroup для определения контрольных групп, к которым принадлежит процесс.
Эти файлы конфигурации уже содержат примеры, поэтому попробуйте настроить их в соответствии с вашими требованиями. Страницы руководства достаточно хорошо описывают их конфигурацию.
После этого запустите менеджер рабочих нагрузок и демон правил:
service cgconfig restart
service cgred restart
Менеджер рабочей нагрузки (cgconfig) отвечает за распределение ресурсов.
Добавление нового процесса в менеджер:
cgexec [-g <controllers>:<path>] command [args]
Добавление уже запущенного процесса в менеджер:
cgclassify [-g <controllers>:<path>] <pidlist>
Или автоматически поверх файла cgrules.conf и демона правил CGroup (cgred), который принудительно запускает каждый вновь созданный процесс в указанную группу.
Пример /etc/cgconfig.conf:
group group1 {
perm {
task {
uid = alice;
gid = alice;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
group group2 {
perm {
task {
uid = bob;
gid = bob;
}
admin {
uid = root;
gid = root;
}
}
cpu {
cpu.shares = 500;
}
}
mount {
cpu = /dev/cgroups/cpu;
cpuacct = /dev/cgroups/cpuacct;
}
Пример /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Это разделит ресурсы процессора примерно на 50-50 между пользователем 'alice' и 'bob'