Show Table of Contents
Capítulo 2. Usando Grupos de Controle
A maneira mais fácil de trabalhar com cgroups é instalar o pacote libcgroup, que contém um número de utilitários de linha de comando relacionados ao cgroup e suas páginas man associadas. É possível montar hierarquias e definir parâmetros de cgroup (não persistentes) usando comandos shell e utilitários disponíveis em qualquer sistema. Entretanto, usar os utilitários fornecidos do libcgroup simplifica o processo e extende suas capabilidades. Portanto, este guia foca principalmente em comandos do libcgroup. Na maioria dos casos nós incluimos os comandos shell equivalentes para ajudar a descrever o mecanismo subjacente. Entretanto, nós recomendamos que você use os comandos libcgroup sempre que for prático.
Nota
Para usar os cgroups, primeiro certifique-se que o pacote libcgroup está instalado no seu sistema rodando, como root:
~]# yum install libcgroup2.1. O Serviço cgconfig
O serviço
cgconfig instalado com o pacote libcgroup fornece uma maneira conveniente para criar hierarquias, anexar subsistemas à hierarquias e gerenciar cgroups com essas hierarquias. Nós recomendamos que você use o cgconfig para gerenciar hierarquias e cgroups no seu sistema.
O serviço
cgconfig não é iniciado por padrão no Red Hat Enterprise Linux 6. Quando você inicia o serviço com chkconfig, ele lê o arquivo de configuração — /etc/cgconfig.conf. Os cgroups são portanto recriados de sessão para sessão e se tornam persistentes. Dependendo dos conteúdos do arquivo de configuração, o cgconfig pode criar hierarquias, montar sistemas de arquivos necessários, criar cgroups e definir parâmetros de subsistemas para cada grupo.
O arquivo padrão
/etc/cgconfig.conf instalado com o pacote libcgroup cria e monta uma hierarquia individual para cada subsistema e anexa os subsistemas à estas hierarquias.
Se você parar o serviço
cgconfig (com o comando service cgconfig stop), ele desmonta todas as hierarquias que montou.
2.1.1. O Arquivo cgconfig.conf
O arquivo
/etc/cgconfig.conf contém dois tipos principais de entrada — mount e group. As entradas do Mount criam e montam hierarquias como sistemas de arquivos virtuais, e anexam subsistemas àquelas hierarquias. Entradas Mount são definidas usando a seguinte sintaxe:
mount {
<controller> = <path>;
…
}
Veja Exemplo 2.1, “Criando entradas mount” para um exemplo de uso.
Exemplo 2.1. Criando entradas mount
O seguinte exemplo cria uma hierarquia para o subsistema
cpuset:
mount {
cpuset = /cgroup/cpu;
}
o equivalente ao comandos shell:
~]#mkdir /cgroup/cpu~]#mount -t cgroup -o cpu cpu /cgroup/cpu
Entradas de grupo criam cgroups e definem parâmetros de subsistema. Entradas Group são definidas com a seguinte sintaxe:
group <name> {
[<permissions>]
<controller> {
<param name> = <param value>;
…
}
…
}
Note que a seção
permissions é opcional. Para definir permissões para uma entrada de grupo, use a seguinte sintaxe:
perm {
task {
uid = <task user>;
gid = <task group>;
}
admin {
uid = <admin name>;
gid = <admin group>;
}
}
Veja Exemplo 2.2, “Criando uma entrada group” para exemplo de uso:
Exemplo 2.2. Criando uma entrada group
O seguinte exemplo cria um cgroup para daemons sql, com permissões para os usuários no grupo
sqladmin para adicionar tarefas ao cgroup e ao usuário root para modificar parâmetros de subsistemas:
group daemons/sql {
perm {
task {
uid = root;
gid = sqladmin;
} admin {
uid = root;
gid = root;
}
} cpu {
cpu.shares = 100;
}
}
Quando combinados com o exemplo da entrada de montagem no Exemplo 2.1, “Criando entradas mount”, os comandos shell equivalentes são:
~]#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
Nota
Você deve iniciar o serviço
cgconfig para as mudanças no /etc/cgconfig.conf terem efeito:
~]# service cgconfig restart
Quando você instala o pacote libcgroup, é gravado um arquivo de configuração de amostra
/etc/cgconfig.conf. Os simbolos hash ('#') no início de cada linha comentam aquela linha e a torna invisível ao serviço 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.