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
andmemory
estão anexados à hierarquia montada em/cgroup/cpu_and_mem
, e - os subsistemas
net_cls
,ns
,cpuacct
,devices
,freezer
eblkio
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
.