Red Hat Training
A Red Hat training course is available for RHEL 8
Capítulo 44. 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.
44.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çãoA 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.[3]
Recursos adicionais
-
Para mais informações sobre controladores de recursos, consulte a seção Seção 44.2, “O que são controladores de recursos do kernel” e as páginas do manual
cgroups(7)
. -
Para mais informações sobre as hierarquias
cgroups
e as versõescgroups
, consulte as páginas do manualcgroups(7)
. -
Para mais informações sobre
systemd
ecgroups
cooperação, veja a seção Papel do sistemad nos grupos de controle.