Os grupos de controle (cgroups) são um recurso do kernel Linux que restringe, contabiliza e isola os recursos físicos (como CPU, memória e I/O) de grupos de processos. Um processo pai pode usar cgroups para gerenciar o consumo de recursos de seus grupos de processos filhos.
Esta página lista as diferenças de interface entre cgroup v1 e cgroup v2. Cada tabela mapeia as interfaces da v1 para seus equivalentes na v2 ou as marca como N/A quando não há equivalente na v2.
Como o cgroup v2 difere do cgroup v1
Antes de consultar as tabelas de interfaces, compreenda duas mudanças arquitetônicas fundamentais no cgroup v2. Elas explicam a remoção, renomeação ou reestruturação de algumas interfaces.
Sem processos em nós internos. No cgroup v2, os processos só podem ser anexados a cgroups folha. Um cgroup com filhos não pode conter processos diretamente. Essa restrição elimina a ambiguidade da v1, na qual um processo podia pertencer simultaneamente a um cgroup pai e a um filho.
Hierarquia unificada. O cgroup v1 permitia montar cada subsistema em uma hierarquia separada. O cgroup v2 usa uma única hierarquia unificada. Por isso, as opções de montagem por subsistema e as hierarquias nomeadas foram removidas.
Essas duas regras explicam por que várias interfaces da v1 não possuem equivalente na v2: tasks, cgroup.clone_children, cgroup.sane_behavior e todo o subsistema cpuacct (sua funcionalidade de contabilização foi integrada ao subsistema cpu na v2).
Convenções de nomenclatura na v2. O cgroup v2 adota padrões de nomenclatura consistentes entre os subsistemas:
min/max— garantias e limites rígidoslow/high— garantias e limites flexíveisweight— distribuição proporcional de recursos (intervalo: 1–10000, padrão: 100)
Por exemplo, memory.min representa uma garantia rígida de memória, memory.low é uma garantia flexível e memory.high é um limite flexível. Todos seguem esse padrão.
Diferenças gerais de interface
Interfaces do cgroup v1
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v2 |
|---|---|---|---|
cgroup.procs |
Move um processo para o cgroup ao gravar seu PID neste arquivo. | Não | cgroup.procs |
cgroup.clone_children |
Quando definido como 1, um cgroup filho herda a configuração de cpuset do pai. Aplica-se apenas ao subsistema cpuset. |
Não | N/A |
cgroup.sane_behavior |
Interface para um recurso experimental da v2, mantida para compatibilidade com versões anteriores após o lançamento oficial da v2. | Não | N/A |
notify_on_release |
Quando definido como 1, o sistema executa o script release_agent quando o cgroup fica vazio. Existe apenas no cgroup raiz. |
Não | cgroup.events, que oferece funcionalidade semelhante |
release_agent |
Não | ||
tasks |
Move uma thread para o cgroup ao gravar seu ID de thread (TID) neste arquivo. | Não | cgroup.threads |
pool_size |
Controla o tamanho do pool de cache do cgroup. Em cenários de alta concorrência, acelera a criação e a vinculação de cgroups. Depende de cgroup_rename. Não disponível no cgroup v2. |
Sim | N/A |
Interfaces do cgroup v2
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v1 |
|---|---|---|---|
cgroup.procs |
Move um processo para o cgroup ao gravar seu PID neste arquivo. | Não | cgroup.procs |
cgroup.type |
Grave threaded para ativar o controle com granularidade de thread. Suportado apenas pelos subsistemas cpu, pids e perf_event. |
Não | N/A |
cgroup.threads |
Move uma thread para o cgroup ao gravar seu TID neste arquivo. Requer que cgroup.type esteja definido como threaded. |
Não | tasks |
cgroup.controllers |
Lista os subsistemas ativados para o cgroup atual. | Não | N/A |
cgroup.subtree_control |
Controla quais subsistemas estão ativados para os cgroups filhos. Os subsistemas ativados devem ser um subconjunto daqueles listados em cgroup.controllers. |
Não | N/A |
cgroup.events |
Registra se o cgroup está gerenciando processos e se está congelado. Monitore alterações de status usando fsnotify. Não existe no cgroup raiz. |
Não | notify_on_release e release_agent (funcionalidade semelhante) |
cgroup.max.descendants |
Controla o número máximo de cgroups descendentes. | Não | N/A |
cgroup.max.depth |
Controla a profundidade máxima dos cgroups descendentes. | Não | N/A |
cgroup.stat |
Exibe o número de cgroups descendentes e a quantidade deles em estado dying (sendo destruídos). |
Não | N/A |
cgroup.freeze |
Congela ou descongela todos os processos no cgroup. Não existe no cgroup raiz. | Não | freezer.state no subsistema freezer |
cpu.stat |
Exibe estatísticas de uso da CPU. | Não | N/A |
io.pressure |
Exibe Pressure Stall Information (PSI). Suporta poll. Consulte psi.rst e Ativar o recurso PSI para cgroup v1. |
Não | io.pressure, memory.pressure e cpu.pressure no subsistema cpuacct (após ativar o PSI para cgroup v1) |
memory.pressure |
Não | ||
cpu.pressure |
Não |
Diferenças de interface por subsistema
CPU
No cgroup v2, o subsistemacpuacctnão existe mais. Sua funcionalidade — contabilização de CPU e estatísticas estendidas — agora faz parte do subsistemacpu.
Interfaces do cgroup v1
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v2 |
|---|---|---|---|
cpu.shares |
Controla o peso usado para alocar tempo de CPU proporcionalmente. Valor padrão: 1024. | Não | cpu.weight, cpu.weight.nice (unidades diferentes) |
cpu.idle |
Define a política de escalonamento do cgroup como idle. Um grupo ocioso recebe a parcela mínima de CPU e deixa de ter garantia de tempo mínimo de execução, tornando mais provável que ceda a CPU para processos não ociosos. Quando cpu.idle é 1, cpu.shares torna-se somente leitura e passa a valer 3. |
Não | cpu.idle |
cpu.priority |
Define uma prioridade preemptiva de granularidade fina. A preempção ocorre em interrupções de clock ou ativações e é ajustada com base na diferença de prioridade. Isso facilita a preempção de tarefas de baixa prioridade pelas de alta prioridade. | Sim | cpu.priority |
cpu.cfs_quota_us |
Tempo máximo de execução de CPU para tarefas em um cgroup dentro de um período definido por cpu.cfs_period_us (controle de largura de banda CFS). |
Não | cpu.max |
cpu.cfs_period_us |
Não | ||
cpu.cfs_burst_us |
Tempo de burst que um processo pode executar dentro de um período cpu.cfs_period_us. Consulte Ativar o recurso CPU burst para cgroup v1. |
Não | cpu.max.burst |
cpu.cfs_init_buffer_us |
Tempo de burst que um processo pode executar na inicialização. | Sim | cpu.max.init_buffer |
cpu.stat |
Exibe estatísticas relacionadas ao controle de largura de banda CFS, como o número de períodos decorridos e eventos de limitação. | Não | cpu.stat |
cpu.rt_runtime_us |
Controle de largura de banda para tarefas de tempo real (RT). Dentro de um período definido por cpu.rt_period_us, os processos no grupo podem executar por no máximo cpu.rt_runtime_us. |
Não | N/A |
cpu.rt_period_us |
Não | N/A | |
cpu.bvt_warp_ns |
Controla o atributo de identidade do grupo para diferenciar processos online e offline, proporcionando melhor qualidade de serviço (QoS) de CPU para processos online. Consulte Recurso de identidade de grupo. | Sim | cpu.bvt_warp_ns |
cpu.identity |
Sim | cpu.identity |
|
cpu.ht_stable |
Controla a geração de ruído no irmão de multithreading simultâneo (SMT) para estabilizar o poder de computação do SMT. | Sim | N/A |
cpu.ht_ratio |
Controla o cálculo de cota extra quando um irmão SMT está ocioso, usada para estabilizar o poder de computação do SMT. | Sim | cpu.ht_ratio |
Interfaces do cgroup v2
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v1 |
|---|---|---|---|
cpu.weight |
Controla o peso usado para alocar tempo de CPU proporcionalmente. Valor padrão: 100. | Não | cpu.shares (unidades diferentes) |
cpu.weight.nice |
Controla o peso usado para alocar tempo de CPU proporcionalmente, expresso como um valor nice. Valor padrão: 0. | Não | cpu.shares (unidades diferentes) |
cpu.idle |
Define a política de escalonamento do cgroup como idle. Um grupo ocioso recebe a parcela mínima de CPU e cede a CPU para processos não ociosos. Quando cpu.idle é 1, cpu.weight e cpu.weight.nice tornam-se somente leitura e assumem o peso mínimo (0,3). Devido ao arredondamento, a leitura de cpu.weight retorna 0. |
Não | cpu.idle |
cpu.priority |
Define uma prioridade preemptiva de granularidade fina. A preempção ocorre em interrupções de clock ou ativações e é dimensionada com base na diferença de prioridade. | Sim | cpu.priority |
cpu.max |
Controle de largura de banda CFS. Contém dois valores: quota e period. Dentro do period, os processos no grupo podem executar por no máximo quota de tempo. |
Não | cpu.cfs_quota_us, cpu.cfs_period_us |
cpu.max.burst |
Tempo de burst que um processo pode executar dentro do period definido por cpu.max. |
Não | cpu.cfs_burst_us |
cpu.max.init_buffer |
Tempo de burst que um processo pode executar na inicialização. | Sim | cpu.cfs_init_buffer_us |
cpu.bvt_warp_ns |
Controla o atributo de identidade do grupo para diferenciar processos offline, proporcionando melhor QoS de CPU para processos online. | Sim | cpu.bvt_warp_ns |
cpu.identity |
Sim | cpu.identity |
|
cpu.sched_cfs_statistics |
Fornece estatísticas relacionadas ao CFS, como tempo de execução e tempo gasto aguardando cgroups irmãos ou não irmãos. Requer que kernel.sched_schedstats esteja ativado. |
Sim | cpuacct.sched_cfs_statistics |
cpu.wait_latency |
Distribuição de latência de processos aguardando na fila de execução. Requer que kernel.sched_schedstats e /proc/cpusli/sched_lat_enabled estejam ativados. |
Sim | cpuacct.wait_latency |
cpu.cgroup_wait_latency |
Distribuição de latência de grupos de processos aguardando na fila de execução. Rastreia o sched_entity do grupo, enquanto cpu.wait_latency rastreia o sched_entity da tarefa. Requer que kernel.sched_schedstats e /proc/cpusli/sched_lat_enabled estejam ativados. |
Sim | cpuacct.cgroup_wait_latency |
cpu.block_latency |
Distribuição de latência de processos bloqueados por motivos não relacionados a I/O. Requer que kernel.sched_schedstats e /proc/cpusli/sched_lat_enabled estejam ativados. |
Sim | cpuacct.block_latency |
cpu.ioblock_latency |
Distribuição de latência de processos bloqueados por motivos de I/O. Requer que kernel.sched_schedstats e /proc/cpusli/sched_lat_enabled estejam ativados. |
Sim | cpuacct.ioblock_latency |
cpu.ht_ratio |
Controla o cálculo de cota extra quando um irmão SMT está ocioso, usada para estabilizar o poder de computação do SMT. Só entra em vigor quando o escalonamento de núcleo está ativado. | Sim | cpu.ht_ratio |
cpuset
Interfaces do cgroup v1
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v2 |
|
|
Controla as CPUs nas quais as tarefas podem executar. As tarefas não podem ser anexadas a um cgroup quando esta interface está vazia. |
Não |
|
|
|
Controla os nós de acesso não uniforme à memória (NUMA) que podem ser alocados para tarefas em um cgroup. As tarefas não podem ser anexadas a um cgroup quando esta interface está vazia. |
Não |
|
|
|
Consulta as CPUs efetivas nas quais as tarefas estão executando. Afetado por eventos de hotplug de CPU. |
Não |
|
|
|
Consulta os nós NUMA efetivos alocados para tarefas em execução. Afetado por eventos de hotplug de nó de memória. |
Não |
|
|
|
Controla quais CPUs são usadas exclusivamente por este cgroup e não podem ser usadas por outros cpusets no mesmo nível. |
Não |
|
|
|
Controla quais nós NUMA são usados exclusivamente por este cgroup e não podem ser usados por outros cpusets no mesmo nível. |
Não |
N/A |
|
|
Quando definido como 1, as tarefas só podem alocar memória dos nós de memória anexados ao cpuset. |
Não |
N/A |
|
|
Controla se as CPUs têm balanceamento de carga dentro do cpuset. Ativado por padrão. |
Não |
N/A |
|
|
Controla o intervalo de busca por CPUs quando o escalonador migra tarefas para balancear a carga. Valor padrão: -1. Valores: -1 (política padrão do sistema), 0 (sem busca), 1 (hyperthreads no mesmo núcleo), 2 (núcleos no mesmo pacote), 3 (CPUs no mesmo nó), 4 (CPUs no mesmo bloco), 5 (todo o sistema). |
Não |
N/A |
|
|
Quando definido como um valor diferente de zero, se uma tarefa receber uma página de memória em um cpuset e for migrada para outro cpuset, a página de memória também migrará para o novo cpuset. |
Não |
N/A |
|
|
Calcula a pressão de paginação de memória do cpuset atual. |
Não |
N/A |
|
|
Quando definido como 1, o kernel distribui o cache de páginas uniformemente entre os nós de memória do cpuset. |
Não |
N/A |
|
|
Quando definido como 1, o kernel distribui os caches slab uniformemente entre os nós de memória do cpuset. |
Não |
N/A |
|
|
Quando definido como 1, ativa a coleta de estatísticas de pressão de memória para o cpuset. |
Não |
N/A |
Interfaces do cgroup v2
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v1 |
|
|
Controla as CPUs nas quais as tarefas podem executar. Quando vazia, utiliza as CPUs do cpuset pai. |
Não |
|
|
|
Controla os nós NUMA que podem ser alocados para tarefas em um cgroup. Quando vazia, utiliza os nós NUMA do cpuset pai. |
Não |
|
|
|
Consulta as CPUs efetivas nas quais as tarefas estão executando. Afetado por eventos de hotplug de CPU. |
Não |
|
|
|
Consulta os nós NUMA efetivos alocados para tarefas em execução. Afetado por eventos de hotplug de nó de memória. |
Não |
|
|
|
Controla se as CPUs de um cpuset são usadas exclusivamente. Grave |
Não |
|
|
|
Consulta quais CPUs são usadas exclusivamente quando |
Não |
N/A |
blkio
Interfaces do cgroup v1
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v2 |
|
|
Especifica o throughput máximo de leitura (bytes/segundo) para um dispositivo. Formato: |
Não |
|
|
|
Especifica o throughput máximo de gravação (bytes/segundo) para um dispositivo. Formato: |
Não |
|
|
|
Especifica o IOPS máximo de leitura para um dispositivo. Formato: |
Não |
|
|
|
Especifica o IOPS máximo de gravação para um dispositivo. Formato: |
Não |
|
|
|
Consulta estatísticas de largura de banda (leitura, gravação, síncrona, assíncrona, descarte e total) em todos os dispositivos. Unidade: bytes. |
Não |
|
|
|
Versão recursiva de |
Não |
N/A |
|
|
Consulta estatísticas de IOPS (leitura, gravação, síncrona, assíncrona, descarte e total) em todos os dispositivos. |
Não |
|
|
|
Versão recursiva de |
Não |
N/A |
|
|
Consulta a duração entre o envio e a conclusão da solicitação para operações de I/O (latência média de I/O). Consulte Melhorar o monitoramento da limitação de E/S de bloco. |
Sim |
|
|
|
Consulta quanto tempo as operações de I/O aguardam nas filas do escalonador (latência média de I/O). Consulte Melhorar o monitoramento da limitação de E/S de bloco. |
Sim |
|
|
|
Consulta o número de operações de I/O concluídas (latência média de I/O). Consulte Melhorar o monitoramento da limitação de E/S de bloco. |
Sim |
|
|
|
Consulta o número de bytes de I/O limitados, usado para determinar se a latência de I/O está relacionada à limitação. Consulte Melhorar o monitoramento da limitação de E/S de bloco. |
Sim |
|
|
|
Consulta o número de operações de I/O limitadas, usado para determinar se a latência de I/O está relacionada à limitação. Consulte Melhorar o monitoramento da limitação de E/S de bloco. |
Sim |
|
|
|
Especifica o modelo de custo blk-iocost. O modo de controle ( |
Sim |
|
|
|
Controla o recurso blk-iocost e configura uma política de QoS para detectar congestionamento de disco. Existe apenas no cgroup raiz. Formato: |
Sim |
|
|
|
Especifica o peso do cgroup para blk-iocost. Existe apenas em cgroups não raiz. Modos: |
Sim |
|
|
|
Consulta estatísticas do blk-iocost. Existe apenas em cgroups não raiz. |
Sim |
N/A |
Interfaces do cgroup v2
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v1 |
|
|
Interface de limitação. Especifica limites de leitura e gravação em bytes/segundo e IOPS. Formato: |
Não |
|
|
|
Consulta estatísticas de operações de I/O, incluindo taxas de leitura, gravação e descarte em bytes/segundo e IOPS. |
Não |
|
|
|
Consulta estatísticas estendidas de I/O, incluindo tempo de espera, tempo de serviço, número de operações de I/O concluídas e taxas de limitação. |
Não |
|
|
|
Especifica o modelo de custo blk-iocost. O modo de controle ( |
Não |
|
|
|
Controla o recurso blk-iocost e configura uma política de QoS para detectar congestionamento de disco. Existe apenas no cgroup raiz. Formato: |
Não |
|
|
|
Especifica o peso do cgroup para blk-iocost. Existe apenas em cgroups não raiz. Modos: |
Não |
|
memory
Interfaces do cgroup v1
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v2 |
|---|---|---|---|
memory.usage_in_bytes |
Consulta o uso atual de memória. | Não | N/A |
memory.max_usage_in_bytes |
Consulta o pico de uso de memória. | Não | N/A |
memory.limit_in_bytes |
Define um limite superior rígido para o uso de memória. | Não | N/A |
memory.soft_limit_in_bytes |
Define um limite inferior flexível para o uso de memória. | Não | N/A |
memory.failcnt |
Consulta o número de vezes que o uso de memória atingiu o limite superior. | Não | N/A |
memory.mglru_batch_size |
Especifica o tamanho do lote para recuperação proativa de memória com base no framework Multi-Generational Least Recently Used (MGLRU). O kernel tenta liberar CPUs entre os lotes de recuperação. | Sim | N/A |
memory.mglru_reclaim_kbytes |
Especifica a quantidade de memória a ser recuperada proativamente com base no framework MGLRU. | Sim | N/A |
memory.wmark_ratio |
Controla o recurso de recuperação assíncrona de backend do memcg definindo a marca d'água de memória que aciona a recuperação assíncrona. Unidade: porcentagem do limite de memória do memcg. Valores válidos: 0–100. Quando 0 (padrão), a recuperação assíncrona é desativada. Consulte Recuperação assíncrona de backend do Memcg. | Sim | memory.wmark_ratio |
memory.wmark_high |
Somente leitura. Quando o uso de memória excede este valor, a recuperação assíncrona de backend inicia. Calculado como: memory.limit_in_bytes × memory.wmark_ratio / 100. Não armazenado no diretório raiz do memcg. Consulte Recuperação assíncrona de backend do Memcg. |
Sim | |
memory.wmark_low |
Somente leitura. Quando o uso de memória cai abaixo deste valor, a recuperação assíncrona de backend termina. Calculado como: memory.wmark_high - memory.limit_in_bytes × memory.wmark_scale_factor / 10000. Não armazenado no diretório raiz do memcg. Consulte Recuperação assíncrona de backend do Memcg. |
Sim | |
memory.wmark_scale_factor |
Especifica o intervalo entre memory.wmark_high e memory.wmark_low. Unidade: 0,01% do limite de memória do memcg. Valores válidos: 1–1000. Padrão: 50 (0,50% do limite), herdado do grupo pai. Não armazenado no diretório raiz do memcg. Consulte Recuperação assíncrona de backend do Memcg. |
Sim | |
memory.wmark_min_adj |
Ajusta a marca d'água mínima global para este memcg. Valores válidos: -25–50. Padrão: 0, herdado do cgroup pai. Valores negativos ajustam dentro do intervalo [0, WMARK_MIN]; valores positivos ajustam dentro do intervalo [WMARK_MIN, WMARK_LOW]. Quando a marca d'água mínima ajustada é excedida, ocorre limitação; o tempo de limitação é linearmente proporcional ao excesso de uso de memória (1–1000 ms). Consulte Classificação da marca d'água mínima global do Memcg. | Sim | |
memory.force_empty |
Recupera forçosamente páginas de memória do cgroup. | Não | N/A |
memory.use_hierarchy |
Controla se a contabilização hierárquica de memória está ativada. | Sim | N/A |
memory.swappiness |
Define o parâmetro swappiness para vmscan, que controla quão agressivamente o kernel usa a partição swap. | Não | N/A |
memory.priority |
Define a prioridade de out-of-memory (OOM) do memcg. Valores válidos: 0–12. Um valor maior indica maior prioridade. Padrão: 0. Não herdado por cgroups descendentes. A ordenação por prioridade aplica-se apenas a cgroups irmãos dentro do mesmo pai; memcgs irmãos com a mesma prioridade são ordenados pelo uso de memória, sendo que o maior consumidor dispara um erro OOM primeiro. Consulte Política de prioridade OOM do Memcg. | Sim | memory.priority |
memory.move_charge_at_immigrate |
Controla se as cobranças de memória de uma tarefa movem-se com ela quando migrada entre cgroups. | Não | N/A |
memory.oom_control |
Controla se o OOM killer encerra tarefas quando ocorre um erro OOM e gera notificações de status OOM. | Não | N/A |
memory.oom.group |
Ativa o recurso de grupo OOM, que encerra todas as tarefas em um memcg quando ocorre um erro OOM. | Sim | memory.oom.group |
memory.pressure_level |
Configura notificações de pressão de memória. | Não | N/A |
memory.kmem.limit_in_bytes |
Define um limite rígido para o uso de memória do kernel. | Não | N/A |
memory.kmem.usage_in_bytes |
Consulta o uso atual de memória do kernel. | Não | N/A |
memory.kmem.failcnt |
Consulta o número de vezes que o uso de memória do kernel atingiu o limite superior. | Não | N/A |
memory.kmem.max_usage_in_bytes |
Consulta o pico de uso de memória do kernel. | Não | N/A |
memory.kmem.slabinfo |
Consulta o uso de memória slab do kernel. | Não | N/A |
memory.kmem.tcp.limit_in_bytes |
Define um limite rígido para o uso de memória TCP do kernel. | Não | N/A |
memory.kmem.tcp.usage_in_bytes |
Consulta o uso atual de memória TCP do kernel. | Não | N/A |
memory.kmem.tcp.failcnt |
Consulta o número de vezes que o uso de memória TCP do kernel atingiu o limite superior. | Não | N/A |
memory.kmem.tcp.max_usage_in_bytes |
Consulta o pico de uso de memória TCP do kernel. | Não | N/A |
memory.memsw.usage_in_bytes |
Consulta o uso combinado de memória e swap. | Não | N/A |
memory.memsw.max_usage_in_byte |
Consulta o pico de uso combinado de memória e swap. | Não | N/A |
memory.memsw.limit_in_bytes |
Define um limite superior para o uso total de memória e swap das tarefas no cgroup. | Não | N/A |
memory.memsw.failcnt |
Consulta o número de vezes que o uso combinado de memória e swap atingiu o limite superior. | Não | N/A |
memory.swap.high |
Define um limite superior para o uso de swap em um cgroup. | Sim | memory.swap.high |
memory.swap.events |
Consulta eventos ocorridos quando o uso de swap atingiu o limite superior. | Sim | memory.swap.events |
memory.min |
Define uma quantidade mínima de memória que o cgroup deve reter (garantia rígida). Consulte Recurso de QoS do Memcg na interface cgroup v1. | Sim | memory.min |
memory.low |
Define uma quantidade mínima de memória que o cgroup deve reter (garantia flexível). Consulte Recurso de QoS do Memcg na interface cgroup v1. | Sim | memory.low |
memory.high |
Define um limite de estrangulamento para o uso de memória. Consulte Recurso de QoS do Memcg na interface cgroup v1. | Sim | memory.high |
memory.allow_duptext |
Controla o recurso code duptext para tarefas em um memcg específico, quando o recurso global code duptext está ativado via /sys/kernel/mm/duptext/enabled. Valores válidos: 0 (desativado, padrão) ou 1 (ativado). Consulte Recurso Code duptext. |
Sim | memory.allow_duptext |
memory.allow_duptext_refresh |
Controla se o recurso code duptext inicia imediatamente quando um arquivo binário é gerado ou baixado. Usa um modo de tarefa assíncrona para atualizar tarefas quando o code duptext não tem efeito em cenários PageDirty ou PageWriteback. | Sim | memory.allow_duptext_refresh |
memory.duptext_nodes |
Limita os nós de memória usados para alocação de memória duptext. | Sim | memory.duptext_nodes |
memory.allow_text_unevictable |
Controla se o trecho de código do memcg está bloqueado (não removível). | Sim | memory.allow_text_unevictable |
memory.text_unevictable_percent |
Especifica a proporção da memória de trechos de código bloqueados do memcg em relação à memória total de código do memcg. | Sim | memory.text_unevictable_percent |
memory.thp_reclaim |
Controla o recurso de recuperação de Transparent Huge Pages (THP). Valores válidos: reclaim (ativado), swap (reservado para uso futuro), disable (desativado, padrão). Consulte Recuperação de THP. |
Sim | memory.thp_reclaim |
memory.thp_reclaim_stat |
Consulta o status de recuperação de THP. Relata contagens por nó NUMA para queue_length (THPs na fila de recuperação), split_hugepage (THPs divididos pela recuperação) e reclaim_subpage (subpáginas zero recuperadas). Consulte Recuperação de THP. |
Sim | memory.thp_reclaim_stat |
memory.thp_reclaim_ctrl |
Configura como a recuperação de THP é acionada. Parâmetros: threshold (máximo de subpáginas zero em um THP antes de acionar a recuperação; padrão: 16) e reclaim (aciona a recuperação). Consulte Recuperação de THP. |
Sim | memory.thp_reclaim_ctrl |
memory.thp_control |
Controla o recurso THP do memcg. Impede o uso de THPs anônimos, shmem e de arquivo, reduzindo a contenção de THP e o desperdício de memória para memcgs offline. | Sim | memory.thp_control |
memory.reclaim_caches |
Controla se o kernel recupera proativamente o cache em memcgs. Exemplo: echo 100M > memory.reclaim_caches. |
Sim | memory.reclaim_caches |
memory.pgtable_bind |
Controla se a memória da tabela de páginas é alocada forçosamente no nó atual. | Sim | memory.pgtable_bind |
memory.pgtable_misplaced |
Consulta estatísticas sobre memória de tabela de páginas alocada entre nós NUMA. | Sim | memory.pgtable_misplaced |
memory.oom_offline |
Marca um memcg como pertencente a uma tarefa offline no recurso Quick OOM. | Sim | memory.oom_offline |
memory.async_fork |
Controla o recurso Async-fork (anteriormente fast convergent merging, ou FCM) para memcgs. | Sim | memory.async_fork |
memory.direct_compact_latency |
Especifica o limiar de latência para compactação direta de memória no recurso memsli. | Sim | memory.direct_compact_latency |
memory.direct_reclaim_global_latency |
Especifica o limiar de latência para recuperação global direta de memória no recurso memsli. | Sim | memory.direct_reclaim_global_latency |
memory.direct_reclaim_memcg_latency |
Especifica o limiar de latência para recuperação direta de memória do memcg no recurso memsli. | Sim | memory.direct_reclaim_memcg_latency |
memory.direct_swapin_latency |
Especifica o limiar de latência para swap-in direto de memória no recurso memsli. | Sim | memory.direct_swapin_latency |
memory.direct_swapout_global_latency |
Especifica o limiar de latência para swap-out global direto de memória no recurso memsli. | Sim | memory.direct_swapout_global_latency |
memory.direct_swapout_memcg_latency |
Especifica o limiar de latência para swap-out direto de memória do memcg no recurso memsli. | Sim | memory.direct_swapout_memcg_latency |
memory.exstat |
Consulta estatísticas estendidas de memória para recursos proprietários: wmark_min_throttled_ms (tempo de limitação desde que a marca d'água mínima ajustada foi excedida), wmark_reclaim_work_ms (duração das tentativas de recuperação de memória do kernel), unevictable_text_size_kb (tamanho dos trechos de código bloqueados) e pagecache_limit_reclaimed_kb (limite de cache de páginas recuperado). Consulte Recurso Memcg Exstat. |
Sim (aprimoramento desenvolvido internamente) | memory.exstat |
memory.idle_page_stats |
Consulta estatísticas de uso de memória kidled para um memcg e sua hierarquia de cgroup. | Sim | memory.idle_page_stats |
memory.idle_page_stats.local |
Consulta estatísticas de uso de memória kidled apenas para um memcg (não hierárquico). | Sim | memory.idle_page_stats.local |
memory.numa_stat |
Consulta estatísticas NUMA para memória anônima, de arquivo e bloqueada. | Não | memory.numa_stat |
memory.pagecache_limit.enable |
Controla o recurso Page Cache Limit. Consulte Recurso Page Cache Limit. | Sim | memory.pagecache_limit.enable |
memory.pagecache_limit.size |
Especifica o limite de tamanho do cache de páginas. Consulte Recurso Page Cache Limit. | Sim | memory.pagecache_limit.size |
memory.pagecache_limit.sync |
Especifica o modo Page Cache Limit: síncrono ou assíncrono. Consulte Recurso Page Cache Limit. | Sim | memory.pagecache_limit.sync |
memory.reap_background |
Controla se os coletores de memcg zumbi recuperam a memória do memcg de forma assíncrona em segundo plano. | Sim | memory.reap_background |
memory.stat |
Consulta estatísticas de memória. | Não | memory.stat |
memory.use_priority_oom |
Controla o recurso de política de prioridade OOM do memcg. Consulte Política de prioridade OOM do Memcg. | Sim | memory.use_priority_oom |
memory.use_priority_swap |
Controla se a memória é movida para swap com base nas prioridades do cgroup. Consulte Política de prioridade OOM do Memcg. | Sim | memory.use_priority_swap |
Interfaces do cgroup v2
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v1 |
|
|
Consulta o uso atual de memória. |
Não |
N/A |
|
|
Define uma quantidade mínima de memória que o cgroup deve reter (garantia rígida). Consulte Recurso de QoS do Memcg na interface cgroup v1. |
Não |
|
|
|
Define uma quantidade mínima de memória que o cgroup deve reter (garantia flexível). Consulte Recurso de QoS do Memcg na interface cgroup v1. |
Não |
|
|
|
Define um limite superior de estrangulamento para o uso de memória. Consulte Recurso de QoS do Memcg na interface cgroup v1. |
Não |
|
|
|
Define um limite rígido para o uso de memória. |
Não |
|
|
|
Consulta a memória swap atualmente em uso. |
Não |
N/A |
|
|
Define um limite superior para o uso de swap em um cgroup. |
Não |
N/A |
|
|
Define um limite rígido para a memória swap. |
Não |
|
|
|
Consulta eventos ocorridos quando o uso de swap atingiu o limite superior. |
Não |
N/A |
|
|
Controla o recurso de grupo OOM, que encerra todas as tarefas em um memcg quando ocorre um erro OOM. |
Não |
|
|
|
Controla o recurso de recuperação assíncrona de backend do memcg. Unidade: porcentagem do limite de memória do memcg. Valores válidos: 0–100. Padrão: 0 (desativado). Consulte Recuperação assíncrona de backend do Memcg. |
Sim |
|
|
|
Somente leitura. Quando o uso de memória excede este valor, a recuperação assíncrona de backend inicia. Calculado como: |
Sim |
|
|
|
Somente leitura. Quando o uso de memória cai abaixo deste valor, a recuperação assíncrona de backend termina. Calculado como: |
Sim |
|
|
|
Especifica o intervalo entre |
Sim |
|
|
|
Ajusta a marca d'água mínima global para este memcg. Valores válidos: -25–50. Padrão: 0, herdado do cgroup pai. Consulte Classificação da marca d'água mínima global do Memcg. |
Sim |
|
|
|
Define a prioridade OOM do memcg. Valores válidos: 0–12. Um valor maior indica maior prioridade. Padrão: 0. Não herdado por cgroups descendentes. Consulte Política de prioridade OOM do Memcg. |
Sim |
|
|
|
Controla o recurso de política de prioridade OOM do memcg. Consulte Política de prioridade OOM do Memcg. |
Sim |
|
|
|
Controla se a memória é movida para swap com base nas prioridades do cgroup. Consulte Política de prioridade OOM do Memcg. |
Sim |
|
|
|
Especifica o limiar de latência para recuperação global direta de memória no recurso memsli. |
Sim |
|
|
|
Especifica o limiar de latência para recuperação direta de memória do memcg no recurso memsli. |
Sim |
|
|
|
Especifica o limiar de latência para compactação direta de memória no recurso memsli. |
Sim |
|
|
|
Especifica o limiar de latência para swap-out global direto de memória no recurso memsli. |
Sim |
|
|
|
Especifica o limiar de latência para swap-out direto de memória do memcg no recurso memsli. |
Sim |
|
|
|
Especifica o limiar de latência para swap-in direto de memória no recurso memsli. |
Sim |
|
|
|
Consulta estatísticas estendidas de memória para recursos proprietários: |
Sim |
|
|
|
Controla o recurso Page Cache Limit. Consulte Recurso Page Cache Limit. |
Sim |
|
|
|
Especifica o limite de tamanho do cache de páginas. Consulte Recurso Page Cache Limit. |
Sim |
|
|
|
Especifica o modo Page Cache Limit: síncrono ou assíncrono. Consulte Recurso Page Cache Limit. |
Sim |
|
|
|
Consulta estatísticas de uso de memória kidled para memcgs individuais em cada nível hierárquico. |
Sim |
|
|
|
Consulta estatísticas de uso de memória kidled para memcgs individuais (não hierárquico). |
Sim |
|
|
|
Consulta estatísticas NUMA para memória anônima, de arquivo e bloqueada. |
Sim |
|
|
|
Controla se os coletores de memcg zumbi recuperam a memória do memcg de forma assíncrona em segundo plano. |
Sim |
|
|
|
Consulta estatísticas de memória. |
Não |
|
cpuacct
O subsistema cpuacct existe apenas no cgroup v1. No cgroup v2, a contabilização de CPU é gerenciada pelo subsistema cpu.
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v2 |
|---|---|---|---|
cpuacct.usage |
Consulta o tempo total de CPU utilizado. Unidade: nanossegundos. | Não | cpu.stat (dados semelhantes) |
cpuacct.usage_user |
Consulta o tempo de CPU utilizado no modo usuário. Unidade: nanossegundos. | Não | |
cpuacct.usage_sys |
Consulta o tempo de CPU utilizado no modo kernel. Unidade: nanossegundos. | Não | |
cpuacct.usage_percpu |
Consulta o tempo de CPU utilizado por CPU. Unidade: nanossegundos. | Não | |
cpuacct.usage_percpu_user |
Consulta o tempo por CPU utilizado no modo usuário. Unidade: nanossegundos. | Não | |
cpuacct.usage_percpu_sys |
Consulta o tempo por CPU utilizado no modo kernel. Unidade: nanossegundos. | Não | |
cpuacct.usage_all |
Consulta um resumo de cpuacct.usage_percpu_user e cpuacct.usage_percpu_sys. Unidade: nanossegundos. |
Não | |
cpuacct.stat |
Consulta o tempo de CPU utilizado nos modos usuário e kernel. Unidade: ticks. | Não | |
cpuacct.proc_stat |
Consulta dados no nível do contêiner, incluindo tempo de CPU, carga média e contagem de tarefas em execução. | Sim | |
cpuacct.enable_sli |
Controla se a contagem de carga média no nível do contêiner está ativada. | Sim | N/A |
cpuacct.sched_cfs_statistics |
Consulta estatísticas CFS, incluindo tempo de execução e tempo de espera do cgroup em relação a cgroups irmãos e não irmãos. | Sim | cpu.sched_cfs_statistics |
cpuacct.wait_latency |
Consulta a latência de tarefas aguardando na fila de execução. | Sim | cpu.wait_latency |
cpuacct.cgroup_wait_latency |
Consulta a latência de cgroups aguardando na fila de execução. Rastreia o sched_entity do grupo, enquanto cpuacct.wait_latency rastreia o sched_entity da tarefa. |
Sim | cpu.cgroup_wait_latency |
cpuacct.block_latency |
Consulta a latência de tarefas bloqueadas por motivos não relacionados a I/O. | Sim | cpu.block_latency |
cpuacct.ioblock_latency |
Consulta a latência de tarefas bloqueadas devido a operações de I/O. | Sim | cpu.ioblock_latency |
io.pressure |
Consulta PSI para I/O, memória e CPU. Suporta polling. Consulte psi.rst e Ativar o recurso PSI para cgroup v1. | Não | N/A |
memory.pressure |
Não | ||
cpu.pressure |
Não |
freezer
O subsistema freezer existe apenas no cgroup v1. No cgroup v2, a funcionalidade equivalente é fornecida por cgroup.freeze na interface geral.
|
Nome da interface |
Finalidade |
Interface proprietária |
Interface correspondente no cgroup v2 |
|
|
Controla o estado de congelamento. Valores válidos: |
Não |
|
|
|
Consulta se um cgroup está congelado devido ao seu próprio estado de congelamento. |
Não |
N/A |
|
|
Consulta se um cgroup está congelado porque um cgroup ancestral está congelado. |
Não |
N/A |
ioasids
As interfaces do subsistema ioasids são as mesmas no cgroup v1 e no cgroup v2.
|
Nome da interface |
Finalidade |
Interface proprietária |
|
|
Consulta o número de ioasids alocados para o cgroup atual. |
Sim |
|
|
Consulta o número de eventos ocorridos porque o limite superior de ioasids alocáveis foi excedido. |
Sim |
|
|
Consulta o número total de ioasids que podem ser alocados para o cgroup atual. |
Sim |
net_cls e net_prio
As interfacesnet_clsenet_prioforam removidas no cgroup v2. Use eBPF para filtrar e moldar o tráfego de rede.
| Nome da interface | Finalidade | Interface proprietária | Interface correspondente no cgroup v2 |
|---|---|---|---|
net_cls.classid |
Especifica o identificador de classe que marca pacotes de rede do cgroup atual. Funciona com qdisc ou iptables. | Não | N/A |
net_prio.prioidx |
Consulta o valor do índice do cgroup atual na estrutura de dados interna. Somente leitura; usado internamente pelo kernel. | Não | |
net_prio.ifpriomap |
Especifica a prioridade de rede para cada controlador de interface de rede (NIC). | Não |
perf_event
O subsistema perf_event não fornece interfaces nem no cgroup v1 nem no cgroup v2. Ele é ativado por padrão no cgroup v2 e oferece a mesma funcionalidade que no cgroup v1.
pids
As interfaces do subsistema pids são as mesmas no cgroup v1 e no cgroup v2.
|
Nome da interface |
Finalidade |
Interface proprietária |
|
|
Especifica o número máximo de tarefas em um cgroup. |
Não |
|
|
Consulta o número atual de tarefas em um cgroup. |
Não |
|
|
Consulta o número de eventos em que uma operação |
Não |
rdma
As interfaces do subsistema rdma são as mesmas no cgroup v1 e no cgroup v2.
|
Nome da interface |
Finalidade |
Interface proprietária |
|
|
Especifica o limite superior para o uso de recursos do adaptador Remote Direct Memory Access (RDMA). |
Não |
|
|
Consulta o uso atual de recursos do adaptador RDMA. |
Não |