Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.2. Criando uma Hierarquia e Anexando Subsistemas

Atenção

As seguintes instruções, que cobrem criar uma nova hierarquia e anexar subsistemas a ela, presumem que os cgroups não estão configurados em seu sistema. Neste caso, estas instruções não afetarão a operação do sistema. Mudar os parâmetros ajustáveis em um cgroup com tarefas, entretanto, podem imediatamente afetar essas tarefas. Este guia lhe alerta a primeira vez quando mudar um parâmetro cgroup ajustável que pode afetar uma ou mais tarefas.
Em um sistema nos quais os cgroups já estão configurados (tanto manualmente ou pelo serviço cgconfig) estes comandos falharão a menos que você primeiro desmonte hierarquias existentes, que afetarão a operação do sistema. Não experimente estas instruções em sistemas em produção.
Para criar uma hierarquia e anexar subsistemas a ela, edite a seção mount do arquivo /etc/cgconfig.conf como root. Entradas na seção mount possuem o seguinte formato:
subsystem = /cgroup/hierarchy;
Quando o cgconfig iniciar da próxima vez, ele criará a hierarquia e anexará subsistemas a ele.
O seguinte exemplo cria uma hierarquia chamada cpu_and_mem e anexa os subsistemas cpu, cpuset, cpuacct, e memory a ele.
mount {
    cpuset  = /cgroup/cpu_and_mem;
    cpu     = /cgroup/cpu_and_mem;
    cpuacct = /cgroup/cpu_and_mem;
    memory  = /cgroup/cpu_and_mem;
}

Método alternativo

Você pode também usar os comandos shell e utilitários para criar hierarquias e anexar subsistemas a eles.
Crie um ponto de montagem para a hierarquia como root. Inclui o nome do cgroup no ponto de montagem.
~]# mkdir /cgroup/name
Por exemplo:
~]# mkdir /cgroup/cpu_and_mem
Depois, use o comando mount para montar a hierarquia e simultâneamente anexar um ou mais subsistema. Por exemplo:
~]# mount -t cgroup -o subsystems name /cgroup/name
Onde um subsystems é uma lista separada por vírgulas de subsistemas e name é o nome da hierarquia. Descrições rápidas de todos os subsistemas disponíveis são listados em Subsistemas Disponíveis no Red Hat Enterprise Linux, e Capítulo 3, Subsistemas e Parâmetros Ajustáveis fornece uma referência detalhada.

Exemplo 2.3. Usando o comando mount para anexar subsistemas

Neste exemplo, um diretório chamado /cgroup/cpu_and_mem já existe, que servirá como o ponto de montagem para a hierarquia que foi criamos. Anexaremos os subsistemas cpu, cpuset e memory a uma hierarquia que chamamos cpu_and_mem, e mount a hierarquia cpu_and_mem em /cgroup/cpu_and_mem:
~]# mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
Você pode listar todos os subsistemas disponíveis junto com seus atuais pontos de montagem (exemplo: onde a hierarquia a que estão anexados está montada) com o lssubsys [3]:
~]# lssubsys -am
cpu,cpuset,memory /cgroup/cpu_and_mem
net_cls
ns
cpuacct
devices
freezer
blkio
Este resultado indica que:
  • os subsistemas cpu, cpuset and memory estão anexados à hierarquia montada em /cgroup/cpu_and_mem, e
  • os subsistemas net_cls, ns, cpuacct, devices, freezer e blkio não estão ainda anexados a qualquer hierarquia, conforme ilustrado pela falta de um ponto de montagem correspondente.


[3] O comando lssubsys é um dos utilitários fornecidos pelo pacote libcgroup. Você deve instalar o libcgroup para usa-lo: consulte o Capítulo 2, Usando Grupos de Controle se você não consegue executar o comando lssubsys.