Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
1.2. Relacionamento Entre Subsistemas, Hierarquias, Grupos de Controle e Tarefas
Qualquer subsistema único (tal como cpu
) pode ser conectado no máximo a uma hierarquia.
cpu
nunca pode ser anexado à duas hierarquias diferentes.
Uma hierarquia única pode ter um ou mais subsistemas anexados a ele.
cpu
e memory
(ou qualquer número de subsistemas) podem ser anexados a uma única hierarquia, desde que cada uma não está anexada a qualquer outra hierarquia.
Cada vez que uma nova hierarquia é criada nos sistemas, todas as tarefas no sistema são inicialmente membros do cgroup padrão desta hierarquia, que é conhecido como root cgroup. Para qualquer hierarquia única que você criar, cada tarefa do sistema pode ser um membro de exatamente um cgroup nessa hierarquia. Uma tarefa única pode estar em múltiplos cgroups, desde que cada um desses cgroups está em uma hierarquia diferente. Tão logo que uma tarefa é feita um membro de um segundo cgroup na mesma hierarquia é removido do primeiro cgroup dessa hierarquia. Nunca uma tarefa estará em dois cgroups diferentes na mesma hierarquia.
cpu
e memory
estiverem anexados à uma hierarquia chamada cpu_and_mem
, e o subsistema net_cls
estiver anexado a uma hierarquia chamada net
, então um processo em execução httpd
poderia ser um membro de qualquer um cgroup no cpu_and_mem
, e qualquer um cgroup no net
.
cpu_and_mem
de que o processo httpd
é um membro, poderá restringir seu tempo de CPU para a metade desse tempo alocado para outros processos e limitar seu uso de memória para um máximo de 1024
MB. Além disso, o cgroup em net
de que é um membro poderá limitar sua taxa de transmissão para 30
megabytes por segundo.
Qualquer processo (tarefa) no sistema que se divide cria um processo filho (tarefa). A tarefa filho automaticamente se torna membro de todos os cgroups de que seu pai é membro. A tarefa filho pode então ser movida para cgroups diferentes conforme necessitado, mas inicialmente sempre herda os cgroups (o "ambiente" dos cgroups na terminologia do processo) das tarefas de seu pai.
httpd
que é um membro do cgroup chamado half_cpu_1gb_max
na hierarquia cpu_and_mem
e um membro do cgroup trans_rate_30
na hierarquia net
. Quando o processo httpd
se divide, seu processo filho automaticamente se torna um membro do cgroup half_cpu_1gb_max
e do cgroup trans_rate_30
. Ele herda os mesmos cgroups exatos que as tarefas de seu pai pertencem.