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 pseudofiletasks
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 otasks
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 apenaslab1
— 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 comandocgcreate
— 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