Todos os produtos
Search
Central de documentação

Alibaba Cloud Linux: Diferenças entre cgroup v1 e cgroup v2

Última atualização: Jul 01, 2026

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ígidos

  • low / high — garantias e limites flexíveis

  • weight — 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 subsistema cpuacct não existe mais. Sua funcionalidade — contabilização de CPU e estatísticas estendidas — agora faz parte do subsistema cpu.

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

cpuset.cpus

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

cpuset.cpus

cpuset.mems

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

cpuset.mems

cpuset.effective_cpus

Consulta as CPUs efetivas nas quais as tarefas estão executando. Afetado por eventos de hotplug de CPU.

Não

cpuset.cpus.effective

cpuset.effective_mems

Consulta os nós NUMA efetivos alocados para tarefas em execução. Afetado por eventos de hotplug de nó de memória.

Não

cpuset.mems.effective

cpuset.cpu_exclusive

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

cpuset.cpus.partition (funcionalidade semelhante)

cpuset.mem_exclusive

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

cpuset.mem_hardwall

Quando definido como 1, as tarefas só podem alocar memória dos nós de memória anexados ao cpuset.

Não

N/A

cpuset.sched_load_balance

Controla se as CPUs têm balanceamento de carga dentro do cpuset. Ativado por padrão.

Não

N/A

cpuset.sched_relax_domain_level

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

cpuset.memory_migrate

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

cpuset.memory_pressure

Calcula a pressão de paginação de memória do cpuset atual.

Não

N/A

cpuset.memory_spread_page

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

cpuset.memory_spread_slab

Quando definido como 1, o kernel distribui os caches slab uniformemente entre os nós de memória do cpuset.

Não

N/A

cpuset.memory_pressure_enabled

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

cpuset.cpus

Controla as CPUs nas quais as tarefas podem executar. Quando vazia, utiliza as CPUs do cpuset pai.

Não

cpuset.cpus

cpuset.mems

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

cpuset.mems

cpuset.cpus.effective

Consulta as CPUs efetivas nas quais as tarefas estão executando. Afetado por eventos de hotplug de CPU.

Não

cpuset.effective_cpus

cpuset.mems.effective

Consulta os nós NUMA efetivos alocados para tarefas em execução. Afetado por eventos de hotplug de nó de memória.

Não

cpuset.effective_mems

cpuset.cpus.partition

Controla se as CPUs de um cpuset são usadas exclusivamente. Grave root para ativar o uso exclusivo.

Não

cpuset.cpu_exclusive (funcionalidade semelhante)

.__DEBUG__.cpuset.cpus.subpartitions

Consulta quais CPUs são usadas exclusivamente quando root é gravado em cpuset.cpus.partition. Disponível apenas quando o recurso cgroup_debug está ativado na cmdline do kernel.

Não

N/A

blkio

Interfaces do cgroup v1

Nome da interface

Finalidade

Interface proprietária

Interface correspondente no cgroup v2

blkio.throttle.read_bps_device

Especifica o throughput máximo de leitura (bytes/segundo) para um dispositivo. Formato: echo "<major>:<minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_bps_device

Não

io.max

blkio.throttle.write_bps_device

Especifica o throughput máximo de gravação (bytes/segundo) para um dispositivo. Formato: echo "<major>:<minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_bps_device

Não

io.max

blkio.throttle.read_iops_device

Especifica o IOPS máximo de leitura para um dispositivo. Formato: echo "<major>:<minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_iops_device

Não

io.max

blkio.throttle.write_iops_device

Especifica o IOPS máximo de gravação para um dispositivo. Formato: echo "<major>:<minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_iops_device

Não

io.max

blkio.throttle.io_service_bytes

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

io.stat

blkio.throttle.io_service_bytes_recursive

Versão recursiva de blkio.throttle.io_service_bytes. Inclui estatísticas de cgroups descendentes.

Não

N/A

blkio.throttle.io_serviced

Consulta estatísticas de IOPS (leitura, gravação, síncrona, assíncrona, descarte e total) em todos os dispositivos.

Não

io.stat

blkio.throttle.io_serviced_recursive

Versão recursiva de blkio.throttle.io_serviced. Inclui estatísticas de cgroups descendentes.

Não

N/A

blkio.throttle.io_service_time

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

io.extstat

blkio.throttle.io_wait_time

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

io.extstat

blkio.throttle.io_completed

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

io.extstat

blkio.throttle.total_bytes_queued

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

io.extstat

blkio.throttle.total_io_queued

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

io.extstat

blkio.cost.model

Especifica o modelo de custo blk-iocost. O modo de controle (ctrl) pode ser auto ou user. Existe apenas no cgroup raiz. Formato: echo "<major>:<minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> rrandiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup/blkio/blkio.cost.model. Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Sim

io.cost.model

blkio.cost.qos

Controla o recurso blk-iocost e configura uma política de QoS para detectar congestionamento de disco. Existe apenas no cgroup raiz. Formato: echo "<major>:<minor> enable=1 ctrl=user rpct= rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/blkio/blkio.cost.qos. Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Sim

io.cost.qos

blkio.cost.weight

Especifica o peso do cgroup para blk-iocost. Existe apenas em cgroups não raiz. Modos: weight (mesmo peso para todos os dispositivos) ou major:minor weight (peso por dispositivo). Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Sim

io.cost.weight

blkio.cost.stat

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

io.max

Interface de limitação. Especifica limites de leitura e gravação em bytes/segundo e IOPS. Formato: echo "<major>:<minor> rbps=<bps> wbps=<bps> riops=<iops> wiops=<iops>" > /sys/fs/cgroup/<cgroup>/io.max

Não

blkio.throttle.read_bps_device, blkio.throttle.read_iops_device, blkio.throttle.write_bps_device, blkio.throttle.write_iops_device

io.stat

Consulta estatísticas de operações de I/O, incluindo taxas de leitura, gravação e descarte em bytes/segundo e IOPS.

Não

blkio.throttle.io_service_bytes, blkio.throttle.io_serviced

io.extstat

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

blkio.throttle.io_service_time, blkio.throttle.io_wait_time, blkio.throttle.io_completed, blkio.throttle.total_bytes_queued, blkio.throttle.total_io_queued

io.cost.model

Especifica o modelo de custo blk-iocost. O modo de controle (ctrl) pode ser auto ou user. Existe apenas no cgroup raiz. Formato: echo "<major>:<minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> rrandiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup/io.cost.model. Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Não

blkio.cost.model

io.cost.qos

Controla o recurso blk-iocost e configura uma política de QoS para detectar congestionamento de disco. Existe apenas no cgroup raiz. Formato: echo "<major>:<minor> enable=1 ctrl=user rpct= rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/io.cost.qos. Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Não

blkio.cost.qos

io.cost.weight

Especifica o peso do cgroup para blk-iocost. Existe apenas em cgroups não raiz. Modos: weight (mesmo peso para todos os dispositivos) ou major:minor weight (peso por dispositivo). Consulte Configurar o recurso de limitação baseada em peso blk-iocost.

Não

blkio.cost.weight

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

memory.current

Consulta o uso atual de memória.

Não

N/A

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.

Não

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.

Não

memory.low

memory.high

Define um limite superior de estrangulamento para o uso de memória. Consulte Recurso de QoS do Memcg na interface cgroup v1.

Não

memory.high

memory.max

Define um limite rígido para o uso de memória.

Não

memory.limit_in_bytes

memory.swap.current

Consulta a memória swap atualmente em uso.

Não

N/A

memory.swap.high

Define um limite superior para o uso de swap em um cgroup.

Não

N/A

memory.swap.max

Define um limite rígido para a memória swap.

Não

memory.memsw.limit_in_bytes

memory.swap.events

Consulta eventos ocorridos quando o uso de swap atingiu o limite superior.

Não

N/A

memory.oom.group

Controla o recurso de grupo OOM, que encerra todas as tarefas em um memcg quando ocorre um erro OOM.

Não

memory.oom.group

memory.wmark_ratio

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

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_high

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_low

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_scale_factor

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. Consulte Classificação da marca d'água mínima global do Memcg.

Sim

memory.wmark_min_adj

memory.priority

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

memory.priority

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

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_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_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.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.exstat

Consulta estatísticas estendidas de memória para recursos proprietários: wmark_min_throttled_ms, wmark_reclaim_work_ms, unevictable_text_size_kb e pagecache_limit_reclaimed_kb. Consulte Memcg Exstat.

Sim

memory.exstat

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.idle_page_stats

Consulta estatísticas de uso de memória kidled para memcgs individuais em cada nível hierárquico.

Sim

memory.idle_page_stats

memory.idle_page_stats.local

Consulta estatísticas de uso de memória kidled para memcgs individuais (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.

Sim

memory.numa_stat

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

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

freezer.state

Controla o estado de congelamento. Valores válidos: FROZEN e THAWED.

Não

cgroup.freeze

freezer.self_freezing

Consulta se um cgroup está congelado devido ao seu próprio estado de congelamento.

Não

N/A

freezer.parent_freezing

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

ioasids.current

Consulta o número de ioasids alocados para o cgroup atual.

Sim

ioasids.events

Consulta o número de eventos ocorridos porque o limite superior de ioasids alocáveis foi excedido.

Sim

ioasids.max

Consulta o número total de ioasids que podem ser alocados para o cgroup atual.

Sim

net_cls e net_prio

As interfaces net_cls e net_prio foram 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

pids.max

Especifica o número máximo de tarefas em um cgroup.

Não

pids.current

Consulta o número atual de tarefas em um cgroup.

Não

pids.events

Consulta o número de eventos em que uma operação fork falhou porque a contagem máxima de tarefas foi atingida. Suporta fsnotify para notificações do sistema de arquivos.

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

rdma.max

Especifica o limite superior para o uso de recursos do adaptador Remote Direct Memory Access (RDMA).

Não

rdma.current

Consulta o uso atual de recursos do adaptador RDMA.

Não