Red Hat Training
A Red Hat training course is available for RHEL 8
9.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 controladorcpuacct
na 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 controladorcpu
na 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_filter
marca 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 parablkio
decgroups-v1
. -
memory
- Um acompanhamento paramemory
decgroups-v1
. -
pids
- O mesmo quepids
emcgroups-v1
. -
rdma
- O mesmo querdma
emcgroups-v1
. -
cpu
- Um acompanhamento paracpu
ecpuacct
decgroups-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 cgroup
como parâmetro para o comandoperf
que 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)
.