Red Hat Training

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

2.5. Criando Grupos de Controle

Use o comando cgcreate para criar cgroups. A sintaxe para o cgcreate é: cgcreate -t uid:gid -a uid:gid -g subsystems:path , onde:
  • -t (opcional) — especifica um usuário (por ID, uid) e um grupo (por ID de grupo) para ter propriedade do pseudofile tasks para este cgroup. Este usuário pode adicionar ou remover tarefas a partir do cgroup.

    Nota

    Note que a única maneira para remover uma tarefa a partir de um cgroup é move-lo para um cgroup diferente. Para mover uma tarefa, o usuário deve ter acesso de escrita ao cgroup de destino; acesso de escrita ao cgroup fonte não é importante nesse caso.
  • -a (opcional) — especifica um usuário (por ID de usuário, uid) e um grupo (por ID de grupo, gid) para possuir todos os pseudofiles a não ser o tasks para este cgroup. Este usuário pode modificar o acesso que as tarefas neste cgroup possuem para recursos de sistema.
  • -g — especifica a hierarquia na qual o cgroup deve ser criado, como uma lista separada por vírgulas dos subsistemas com essas hierarquias. Se os subsistemas nesta lista estão em hierarquias diferentes, o grupo é criado em cada uma dessas hierarquias. A lista de hierarquias é seguida por dois pontos e o caminho ao grupo filho relativo à hierarquia. Não inclua o ponto de montagem da hierarquia no caminho.
    Por exemplo, o cgroup localizado no diretório /cgroup/cpu_and_mem/lab1/ é chamada apenas lab1 — seu caminho já está unicamente determinado porque não há, no máximo, uma hierarquia para um determinado subsistema. Note que também o grupo é controlado por todos os subsistemas que existem nas hierarquias na qual o cgroup é criado, mesmo que estes subsistemas não foram especificados no comando cgcreate — consulte Exemplo 2.5, “uso do cgcreate”.
Por causa que todos os cgroups na mesma hierarquia possuem os mesmos controladores, o grupo filho possui os mesmos controladores como seu pai.

Exemplo 2.5. uso do cgcreate

Considere um sistema onde os subsistemas cpu e memory são montados juntos à hierarquia cpu_and_mem e o controlador net_cls é montado em uma hierarquia separada chamada net. Agora, executaremos:
~]# cgcreate -g cpu,net_cls:/test-subgroup
O comando cgcreate cria dois grupos chamados test-subgroup, um na hierarquia cpu_and_mem e um na hierarquia net. O grupo test-subgroup na hierarquia cpu_and_mem é controlado pelo subsistema memory, mesmo que nós não especificamos ele no comando cgcreate.

Método alternativo

Para criar um filho do cgroup diretamente, use o comando mkdir:
~]# mkdir /cgroup/hierarchy/name/child_name
Por exemplo:
~]# mkdir /cgroup/cpuset/lab1/group1