44.2. O que são controladores de recursos do kernel
A funcionalidade dos grupos de controle é habilitada pelos controladores de recursos do kernel. A RHEL 8 suporta vários controladores para control groups version 1 (cgroups-v1) e control groups version 2 (cgroups-v2).
Um controlador de recursos, também chamado de subsistema de grupo de controle, é um subsistema de kernel que representa um único recurso, como tempo de CPU, memória, largura de banda de rede ou E/S de disco. O kernel Linux fornece uma gama de controladores de recursos que são montados automaticamente pelo sistema systemd e pelo gerenciador de serviços. Encontre uma lista dos controladores de recursos atualmente montados no arquivo /proc/cgroups.
Os seguintes controladores estão disponíveis para cgroups-v1:
-
blkio- pode estabelecer limites no acesso de entrada/saída de e para os dispositivos de bloco. -
cpu- pode ajustar os parâmetros do Agendador de Programação Completamente Justo (CFS) para as tarefas do grupo de controle. Ele é montado junto com o controladorcpuacctna mesma montagem. -
cpuacct- cria relatórios automáticos sobre os recursos da CPU utilizados por tarefas em um grupo de controle. É montado junto com o controladorcpuna mesma montagem. -
cpuset- pode ser usado para restringir as tarefas do grupo de controle para executar somente em um subconjunto específico de CPUs e para direcionar as tarefas para usar a memória somente em nós de memória especificados. -
devices- pode controlar o acesso a dispositivos para tarefas em um grupo de controle. -
freezer- pode ser usado para suspender ou retomar tarefas em um grupo de controle. -
memory- pode ser usado para estabelecer limites no uso de memória por tarefas em um grupo de controle e gera relatórios automáticos sobre os recursos de memória utilizados por essas tarefas. -
net_cls- tags pacotes de rede com um identificador de classe (classid) que permite ao controlador de tráfego Linux (o comandotc) identificar pacotes que se originam de uma determinada tarefa do grupo de controle. Um subsistema denet_cls, onet_filter(iptables), também pode usar esta tag para realizar ações em tais pacotes. Onet_filtermarca tomadas de rede com um identificador de firewall (fwid) que permite que o firewall Linux (através do comandoiptables) identifique pacotes originados de uma tarefa específica do grupo de controle. -
net_prio- estabelece a prioridade do tráfego na rede. -
pids- pode estabelecer limites para uma série de processos e seus filhos em um grupo de controle. -
perf_event- pode agrupar tarefas para monitoramento pelo utilitário de monitoramento e relatórios de desempenhoperf. -
rdma- pode estabelecer limites para os recursos específicos de Remote Direct Memory Access/InfiniBand em um grupo de controle. -
hugetlb- pode ser usado para limitar o uso de páginas de memória virtual de grande tamanho por tarefas em um grupo de controle.
Os seguintes controladores estão disponíveis para cgroups-v2:
-
io- Um acompanhamento parablkiodecgroups-v1. -
memory- Um acompanhamento paramemorydecgroups-v1. -
pids- O mesmo quepidsemcgroups-v1. -
rdma- O mesmo querdmaemcgroups-v1. -
cpu- Um acompanhamento paracpuecpuacctdecgroups-v1. -
cpuset- Suporta apenas a funcionalidade central (cpus{,.effective},mems{,.effective}) com uma nova funcionalidade de partição. -
perf_event- O suporte é inerente, nenhum arquivo de controle explícito. Você pode especificar umv2 cgroupcomo parâmetro para o comandoperfque irá traçar o perfil de todas as tarefas dentro dessecgroup.
Um controlador de recursos pode ser usado tanto em uma hierarquia cgroups-v1 quanto em uma hierarquia cgroups-v2, não simultaneamente em ambas.
Recursos adicionais
-
Para mais informações sobre controladores de recursos em geral, consulte a página do manual
cgroups(7). -
Para descrições detalhadas dos controladores de recursos específicos, consulte a documentação no diretório
/usr/share/doc/kernel-doc-<kernel_version>/Documentation/cgroups-v1/. -
Para mais informações sobre
cgroups-v2, consulte a página do manualcgroups(7).