Todos os produtos
Search
Central de documentação

Alibaba Cloud Linux:Melhorar a visibilidade de recursos de contêiner

Última atualização: Jun 29, 2026

Para melhorar a visibilidade de recursos de contêiner, o Alibaba Cloud Linux 2 (a partir da versão do kernel 4.19.91-22.2.al7) e o Alibaba Cloud Linux 3 (a partir da versão do kernel 5.10.46-7.al8) oferecem interfaces de kernel para o recurso de visualização de recursos de contêiner. Este tópico descreve essas interfaces e fornece exemplos de uso.

Informações básicas

Por padrão, o recurso de visualização de recursos de contêiner do Alibaba Cloud Linux vem desativado. Ao ativar esse recurso e executar comandos como top e free dentro de um contêiner para ler dados das interfaces listadas abaixo, o sistema retorna as informações de recursos do próprio contêiner, em vez dos dados da instância do Elastic Compute Service (ECS) que o hospeda:

  • /proc/cpuinfo

  • /proc/meminfo

  • /sys/devices/system/cpu/online

Interfaces

Interface

Descrição

/proc/sys/kernel/rich_container_enable

Defina se o recurso de visualização de recursos de contêiner deve ser ativado. Valores válidos:

  • 0: desativa o recurso de visualização de recursos de contêiner.

  • 1: ativa o recurso de visualização de recursos de contêiner.

Valor padrão: 0.

/proc/sys/kernel/rich_container_source

Origem de dados da interface cgroup. Valores válidos:

  • 0: o cgroup onde reside o ponteiro atual.

  • 1: o cgroup onde reside o child reaper (Processo 1 do namespace PID atual).

Valor padrão: 0.

/proc/sys/kernel/rich_container_cpuinfo_source

Quantidade de CPUs exibidas nas interfaces /proc/cpuinfo e /sys/devices/system/cpu/online. Valores válidos:

  • 0: valor Limit no Kubernetes. Corresponde à razão entre o valor de quota e o valor de period (quota/period) no cgroup de CPU. Caso o valor de quota seja -1, utiliza-se a origem de dados de CPU da interface cpuset.cpus.

  • 1: origem de dados de CPU na interface cpuset.cpus.

  • 2: número inteiro resultante do arredondamento para cima da divisão do valor de cpu.shares pelo valor de /proc/sys/kernel/rich_container_cpuinfo_sharesbase. Por exemplo, se a divisão de cpu.shares por /proc/sys/kernel/rich_container_cpuinfo_sharesbase resultar em 1,1, o valor final será 2. Esse valor não pode ultrapassar o número de CPUs disponíveis.

Valor padrão: 0.

/proc/sys/kernel/rich_container_cpuinfo_sharesbase

Utilize esta interface como parte da fórmula para obter o valor final quando a interface /proc/sys/kernel/rich_container_cpuinfo_source estiver definida como 2. O valor precisa ser um número inteiro maior ou igual a 2.

Valor padrão: 1024.

Exemplos

Nos exemplos a seguir, considera-se uma instância Linux com Docker implantado e um contêiner criado com 1 GB de memória.

  • Com o recurso de visualização de recursos de contêiner desativado, a interface /proc/sys/kernel/rich_container_enable apresenta valor 0. Ao executar o comando free -m dentro do contêiner, o sistema exibe as informações de recursos da instância Linux hospedeira, conforme mostra a figura a seguir.free

  • Ao executar o comando echo 1 > /proc/sys/kernel/rich_container_enable na instância Linux para ativar o recurso de visualização de recursos de contêiner e, em seguida, executar o comando free -m dentro do contêiner, o sistema passa a exibir as informações de recursos do próprio contêiner, como ilustra a figura abaixo.free

Cenários especiais

Geralmente, os valores padrão das interfaces atendem aos requisitos de negócio após a ativação do recurso de visualização de recursos de contêiner. No entanto, observe as configurações de interface nos cenários descritos a seguir:

Em pods sem compartilhamento de namespace de ID de processo (PID), cada contêiner opera com um namespace PID independente. Se você utilizar o comando systemd para iniciar um contêiner privilegiado e o processo desse contêiner for o Processo 1, a tarefa de coleta de dados de monitoramento será executada em um cgroup filho, e não no cgroup raiz do contêiner.

Por exemplo, ao fazer login no contêiner usando um par de chaves SSH e executar o comando cat /proc/cpuinfo, uma das situações abaixo pode ocorrer:

  • Caso a interface /proc/sys/kernel/rich_container_source esteja definida como 0 durante a execução do comando, o ponteiro atual estará no cgroup filho criado pelo sshd.service dentro do contêiner. Nessa situação, o sistema retorna dados incorretos.

  • Se você executar o comando echo 1 > /proc/sys/kernel/rich_container_source, o cgroup onde reside o child reaper será usado como origem de dados. Nesse caso, o sistema retorna dados válidos.