Show Table of Contents
Глава 2. Работа с контрольными группами
Управление контрольными группами осуществляется с помощью инструментов из пакета libcgroup. В принципе, параметры групп можно изменить на время текущего сеанса с помощью стандартных команд оболочки, но libcgroup значительно упрощает этот процесс и предоставляет больше возможностей. В данном руководстве рассматривается настройка групп с использованием libcgroup, но приводятся и эквивалентные команды оболочки.
Примечание
В режиме root:
~]# yum install libcgroup2.1. Служба cgconfig
cgconfig устанавливается вместе с libcgroup и рекомендуется для создания иерархий, их связи с подсистемами и управления группами.
В Red Hat Enterprise Linux 6
cgconfig не запускается по умолчанию. При ее запуске с помощью chkconfig будет прочитан файл конфигурации /etc/cgconfig.conf. Каждый раз при запуске группы будут создаваться заново и таким образом сохранять постоянство. Исходя из настроек в /etc/cgconfig.conf, cgconfig может создавать иерархии, подключать файловые системы, создавать контрольные группы и настраивать подсистемы для каждой группы.
В исходном
/etc/cgconfig.conf определены настройки для создания и подключения иерархии для каждой подсистемы, и для связи подсистем с этими иерархиями.
При остановке
cgconfig (команда service cgconfig stop) все иерархии будут отключены.
2.1.1. cgconfig.conf
Файл
cgconfig.conf содержит два типа записей — mount и group. В секции mount создаются иерархии, которые затем подключаются как виртуальные файловые системы. Созданным иерархиям могут быть назначены подсистемы. Формат:
mount {
<подсистема> = <путь>;
…
}
Пример 2.1. Создание секции mount
Пример создания иерархии для подсистемы
cpuset:
mount {
cpuset = /cgroup/cpu;
}
что эквивалентно командам:
~]#mkdir /cgroup/cpu~]#mount -t cgroup -o cpu cpu /cgroup/cpu
Записи group содержат определения групп и параметры подсистем. Например:
group <имя> {
[<права>]
<подсистема> {
<параметр> = <значение>;
…
}
…
}
Секция прав доступа не является обязательной. Ее формат:
perm {
task {
uid = <пользователь>;
gid = <группа>;
}
admin {
uid = <администратор>;
gid = <админ_группа>;
}
}
Пример 2.2. Создание секции group
В следующей секции создается контрольная группа для служб sql. Пользователям в группе
sqladmin разрешается добавлять задачи в группу, а пользователю root разрешается изменять параметры подсистем.
group daemons/sql {
perm {
task {
uid = root;
gid = sqladmin;
} admin {
uid = root;
gid = root;
}
} cpu {
cpu.shares = 100;
}
}
Эквивалентный набор команд оболочки в комбинации с секцией mount (см. Пример 2.1, «Создание секции mount») будет выглядеть так:
~]#mkdir -p /cgroup/cpu/daemons/sql~]#chown root:root /cgroup/cpu/daemons/sql/*~]#chown root:sqladmin /cgroup/cpu/daemons/sql/tasks~]#echo 100 > /cgroup/cpu/daemons/sql/cpu.shares
Примечание
Чтобы изменения в
/etc/cgconfig.conf вступили в силу, надо перезапустить cgconfig:
~]# service cgconfig restart
При установке libcgroup будет создан шаблон файла
/etc/cgconfig.conf. Знаки # в начале строки отделяют комментарии, которые cgconfig будет игнорировать.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.