Todos os produtos
Search
Central de documentação

Alibaba Cloud Linux:Otimize a memória com o recurso de QoS do memcg da interface cgroup v1

Última atualização: Sep 06, 2026

O recurso de qualidade de service (QoS) do grupo de controle de memória (memcg) foi projetado para gerenciar recursos de memória e otimizar o uso de memória em sistemas operacionais Linux. Utilize esse recurso para reservar uma quantidade específica de memória e atender aos requisitos de services ou aplicações críticas. Também é possível definir um limite máximo de uso de memória para evitar instabilidade no sistema causada por tarefas que consomem muita memória. Nas versões comunitárias do kernel Linux, apenas a interface cgroup v2 oferece suporte ao recurso de QoS do memcg. No Alibaba Cloud Linux 2, a partir da versão do kernel 4.19.91-18.al7, e no Alibaba Cloud Linux 3, a interface cgroup v1 também suporta esse recurso.

Informações básicas

Por padrão, o recurso memcg QoS vem ativado na interface cgroup v1 do kernel do Alibaba Cloud Linux. Para obter mais detalhes sobre o recurso memcg QoS, consulte Documentation/admin-guide/cgroup-v2.rst. Você pode obter a documentação do kernel nos pacotes Debuginfo e source code do Alibaba Cloud Linux. Para mais informações, visualize Use Alibaba Cloud Linux 2.

Observações de uso

Ao utilizar o recurso de QoS do memcg na interface cgroup v1, recomenda-se colocar as tarefas em um nó folha do memcg. Exemplo de caminho de tarefa: /sys/fs/cgroup/memory/<nó intermediário>/<nó folha>/tasks.

Descrição da interface

A tabela a seguir descreve as interfaces que implementam o recurso de QoS do memcg na interface cgroup v1 do kernel do Alibaba Cloud Linux.

Interface

Descrição

memory.min

Reserva de forma absoluta uma quantidade específica de memória. A memória reservada por esta interface não pode ser recuperada, mesmo que o sistema não tenha outra memória disponível para recuperação. Isso garante que os processos no cgroup obtenham a quantidade mínima especificada de memória e evita a degradação do desempenho do service. Esta interface é adequada para services que exigem uma quantidade mínima garantida de memória residente para atender aos requisitos de desempenho.

As operações de leitura e gravação são as seguintes:

  • Leia o tamanho da memória reservada diretamente da interface.

  • Defina o tamanho da memória reservada pelo memcg gravando nesta interface.

memory.low

Efetua uma reserva relativa de uma quantidade específica de memória. A memória reservada por esta interface pode ser parcialmente recuperada se o sistema não tiver outra memória disponível. Dessa forma, o sistema ajusta a alocação de memória de maneira mais adequada quando os recursos são insuficientes. Mais indicada para services que precisam de proteção básica, mas não exigem proteção absoluta, como aplicações de negócios não críticas e tarefas em segundo plano.

É possível realizar as seguintes operações de leitura e gravação na interface:

  • Visualize o tamanho da memória reservada através da interface.

  • Grave nesta interface para configurar o tamanho da memória reservada para o memcg.

memory.high

Limita o uso de memória. As operações de leitura e gravação disponíveis nesta interface incluem:

  • Visualize o limite superior de uso de memória lendo a interface.

  • Utilize esta interface para estabelecer o limite de memória do memcg.

Exemplos de API

No Alibaba Cloud Linux 3, aloque memória ou especifique um limite máximo de uso de memória no diretório de montagem do memcg, como /sys/fs/cgroup/memory/.

Nota

Execute os comandos a seguir apenas como usuário root.

Comandos de exemplo:

  1. Crie o diretório test_memcg executando o comando abaixo:

    mkdir /sys/fs/cgroup/memory/test_memcg
  2. Reserve uma quantidade específica de memória de forma absoluta.

    1. Execute o seguinte comando para reservar absolutamente 200 MB de memória.

      echo 209715200 > /sys/fs/cgroup/memory/test_memcg/memory.min
    2. Visualize o resultado com o comando a seguir.

      cd /sys/fs/cgroup/memory/test_memcg
      cat memory.min
  3. Faça uma reserva relativa de uma quantidade específica de memória.

    1. Defina a memória reservada absoluta como 200 MB usando o comando abaixo.

      echo 209715200 > /sys/fs/cgroup/memory/test_memcg/memory.low
    2. Verifique o resultado executando o seguinte comando.

      cd /sys/fs/cgroup/memory/test_memcg
      cat memory.low
  4. Especifique um limite superior para o uso de memória.

    1. Configure o limite máximo de uso de memória para 1 GB com este comando.

      echo 1073741824 > /sys/fs/cgroup/memory/test_memcg/memory.high
    2. Visualize a saída gerada pelo comando a seguir.

      cd /sys/fs/cgroup/memory/test_memcg
      cat memory.high