Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 9. Estabelecendo limites para aplicações

Como administrador de sistemas, use a funcionalidade do kernel dos grupos de controle para definir limites, priorizar ou isolar os recursos de hardware dos processos de modo que as aplicações em seu sistema sejam estáveis e não fiquem sem memória.

9.1. Entendendo os grupos de controle

Control groups é um recurso do kernel Linux que permite organizar processos em grupos hierarquicamente ordenados - cgroups. A hierarquia (árvore de grupos de controle) é definida fornecendo estrutura para cgroups sistema de arquivo virtual, montado por padrão no diretório /sys/fs/cgroup/. Ela é feita manualmente através da criação e remoção de subdiretórios em /sys/fs/cgroup/. Alternativamente, utilizando o sistema systemd e o gerente de serviços.

Os controladores de recursos (um componente do kernel) modificam então o comportamento dos processos em cgroups limitando, priorizando ou alocando recursos do sistema (tais como tempo de CPU, memória, largura de banda de rede ou várias combinações) desses processos.

O valor agregado de cgroups é a agregação de processos que permite a divisão de recursos de hardware entre aplicações e usuários. Assim, é possível obter um aumento na eficiência geral, estabilidade e segurança do ambiente dos usuários.

Grupos de controle versão 1

Control groups version 1 (cgroups-v1) fornece uma hierarquia de controladores por recurso. Isso significa que cada recurso, como CPU, memória, E/S, etc., tem sua própria hierarquia de grupo de controle. É possível combinar diferentes hierarquias de grupos de controle de uma forma que um controlador possa coordenar com outro na administração de seus respectivos recursos. Entretanto, os dois controladores podem pertencer a hierarquias de processo diferentes, o que não permite sua coordenação adequada.

Os controladores cgroups-v1 foram desenvolvidos em um grande período de tempo e, como resultado, o comportamento e a nomenclatura de seus arquivos de controle não é uniforme.

Grupos de controle versão 2

Os problemas com a coordenação do controlador, decorrentes da flexibilidade da hierarquia, levaram ao desenvolvimento do site control groups version 2.

Control groups version 2 (cgroups-v2) fornece uma hierarquia de grupo de controle única contra a qual todos os controladores de recursos são montados.

O comportamento do arquivo de controle e a nomeação é consistente entre os diferentes controladores.

Atenção

A RHEL 8 fornece cgroups-v2 como uma previsão tecnológica com um número limitado de controladores de recursos. Para mais informações sobre os controladores de recursos relevantes, consulte o cgroups-v2 release note.

Esta subseção foi baseada em uma apresentação do Devconf.cz 2019.[1]

Recursos adicionais



[1] Linux Control Group v2 - Uma introdução, apresentação Devconf.cz 2019 por Waiman Long