O kernel documentação fornece uma cobertura geral de cgroups com exemplos.
O pacote cgroups-bin
(que depende de libcgroup1
) já fornecido pela distribuição deve ser bom.
A configuração é feita editando os dois arquivos a seguir:
/etc/cgconfig.conf
Usado pelo libcgroup para definir grupos de controle, seus parâmetros e pontos de montagem.
/etc/cgrules.conf
Usado pelo libcgroup para definir os grupos de controle aos quais o processo pertence.
Esses arquivos de configuração já contêm exemplos, portanto, tente ajustá-los aos seus requisitos. As páginas man abrangem sua configuração muito bem.
Depois, inicie o daemon de gerenciador de carga de trabalho e de regras:
service cgconfig restart
service cgred restart
O gerenciador de carga de trabalho (cgconfig) é responsável por alocar os recursos.
Adicionando um novo processo ao gerente:
cgexec [-g <controllers>:<path>] command [args]
Adicionando um processo já em execução ao gerente:
cgclassify [-g <controllers>:<path>] <pidlist>
Ou automaticamente no arquivo cgrules.conf e no CGroup Rules Daemon (cgred), que força cada processo recém-gerado no grupo especificado.
Exemplo de /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;
}
Exemplo /etc/cgrules.conf:
alice cpu group1/
bob cpu group2/
Isso dividirá os recursos da CPU entre 50 e 50 entre o usuário 'alice' e 'bob'