Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Diagnóstico de memória

Última atualização: Jun 27, 2026

Quando um nó ou pod do Kubernetes fica sem memória, os sintomas costumam ser intermitentes e difíceis de rastrear: aplicações falham inesperadamente, pods são removidos ou o desempenho do cluster degrada sem causa clara. O recurso de diagnóstico de memória do Container Intelligence Service ajuda a identificar a causa raiz de problemas comuns de memória em clusters ACK, incluindo vazamentos, fragmentação e erros de out of memory (OOM). Os resultados aparecem em gráficos e tabelas para avaliação rápida da integridade da memória do sistema.

O diagnóstico de memória abrange três áreas: visão geral da memória, análise de memória e análise de OOM. Inspecione o uso de memória tanto no nível do nó quanto no nível do pod.

Nota

Os itens de diagnóstico podem variar conforme a configuração do cluster. Os itens exibidos na página de diagnóstico refletem o estado real do seu cluster.

Importante

Ao executar o recurso de diagnóstico, o ACK roda um programa de coleta de dados em cada nó para reunir os resultados. Os dados coletados incluem versão do sistema, status de carga, status do docker e do kubelet, além de mensagens de erro importantes nos logs do sistema. O ACK não coleta informações de negócios nem dados sensíveis.

Fluxo de trabalho de diagnóstico

Utilize as três áreas de diagnóstico em sequência para isolar problemas de memória:

  1. Visão geral da memória: verifique riscos de alto nível, como memória vazada, fragmentação, entradas Memcg não liberadas e desperdício de THP. Use os gráficos para confirme se o uso anormal está na memória do kernel ou da aplicação.

  2. Análise de memória: aprofunde-se no uso de memória nos níveis de processo e pod para identificar qual processo ou container consome excesso de memória anônima, page cache ou memória compartilhada.

  3. Análise de OOM: revise contagens e tipos de eventos OOM para determinar se os erros ocorrem no nível do nó (Host) ou do container (cgroup) e quais containers atingiram seus limites de memória.

Visão geral da memória

A visão geral da memória apresenta itens de diagnóstico relacionados a riscos. A tabela a seguir descreve cada item.

Item de diagnóstico

Descrição

Leaked Memory

Verifica vazamentos de memória do kernel no Slab, Vmalloc e buddy system (allocpage).

Memory Usage

Exibe a utilização da memória do sistema.

Memcg

Avalia se grupos de memória (Memcg) não liberados degradam o desempenho do sistema ou causam erros estatísticos.

Memory Fragmentation

Verifica fragmentação de memória que degrade o desempenho do sistema.

THPZeroPage

Avalia a proporção de desperdício de Transparent Huge Page (THP).

Gráficos também exibem o uso da memória do sistema, dividido em três categorias:

  • Memória do kernel (kernel): total utilizado pelo kernel do sistema operacional.

  • Memória da aplicação (app): total utilizado por programas em modo de usuário.

  • Memória livre (free): total de memória livre do sistema.

Conceitos principais

Os termos a seguir são utilizados em todo o diagnóstico de memória.

Termo

Descrição

Vazamento de memória

Ocorre quando a memória alocada dinamicamente a um programa nunca é liberada, aumentando continuamente a utilização da memória do sistema. Vazamentos não resolvidos degradam o desempenho do programa e podem causar falhas no sistema.

Utilização de memória

Utilização de memória = (Memória total - Memória livre) x 100 / Memória total. O page cache conta como memória livre e não afeta a utilização, pois o kernel pode recuperá-lo e reutilizá-lo a qualquer momento.

Memcg não liberado

Grupo de memória não liberado devido a uma exceção do sistema. Entradas Memcg não liberadas podem degradar o desempenho do sistema.

Fragmentação de memória

Após longo período de execução, blocos contíguos de memória livre tornam-se pequenos demais para atender a grandes solicitações de alocação contígua. Isso atrasa a alocação e causa instabilidade nas aplicações.

Proporção de desperdício de THP

Proporção de desperdício de THP = Número de THPs zeradas x 100% / Número total de THPs. Consulte Detalhes sobre THP abaixo.

Buddy system

Algoritmo do kernel Linux para gerenciamento de páginas de memória. Divide as páginas em 11 grupos e gerencia blocos em potências de dois: 4 KB, 8 KB, 16 KB, 32 KB ... 4 MB. A maioria das páginas tem 4 KB.

Slab

Alocador que reserva pequenos pedaços de memória sobre o buddy system.

Vmalloc

Alocador que usa mapeamento não linear sobre o buddy system.

Page cache (filecache)

Ao ler ou gravar um arquivo, o Linux armazena seu conteúdo em cache na memória para acelerar acessos subsequentes.

Memória anônima

Memória alocada dinamicamente para o heap e a stack de um processo por meio de new, malloc ou mmap. Não possui respaldo em sistema de arquivos.

Memória compartilhada

Bloco de memória compartilhado por dois ou mais processos para comunicação entre eles.

tmpfs

Sistema de arquivos temporário do Linux respaldado por memória. O conteúdo lido ou gravado no tmpfs permanece em cache na memória.

hugetlb

Memória consumida por huge pages em um sistema de arquivos.

Detalhes sobre THP

As Transparent Huge Pages (THP) são huge pages de 2 MiB ou 1 GiB no kernel. Cada subpágina tem 4 KiB; portanto, uma THP de 2 MiB equivale a 512 subpáginas.

Com o THP ativado, o kernel aloca THPs dinamicamente para reduzir falhas no Translation Lookaside Buffer (TLB) e melhorar o desempenho da aplicação. No entanto, o THP pode causar inchaço e overcommitment de memória: quando uma aplicação solicita apenas 8 KiB (2 subpáginas), o kernel aloca uma THP completa de 2 MiB. Isso deixa 510 subpáginas zeradas que desperdiçam resident set size (RSS) e podem acionar erros OOM.

Métricas de memória do kernel

Na maioria dos casos, vazamentos de memória indicam uso anormal no Sunreclaim ou no buddy system. Monitore essas métricas atentamente.

Métrica

Descrição

SReclaimable

Memória recuperável pelo Slab.

Sunreclaim

Memória não recuperável pelo Slab. Crescimento anormal aqui indica fortemente vazamento de memória do kernel.

PageTables

Memória ocupada pelas tabelas de páginas do kernel.

Vmalloc

Memória alocada pela função Vmalloc.

KernelStack

Total de memória ocupada pelo heap e pela stack de um processo.

AllocPages

Memória alocada do buddy system por funções como alloc_pages. Essa memória não pode ser recuperada por nenhum arquivo de nó; o uso excessivo cria um buraco negro de memória.

Métricas de memória da aplicação

Ao analisar o uso de memória em modo de usuário, concentre-se na memória anônima, memória compartilhada e page cache.

Métrica

Descrição

filecache

Page cache recuperável mediante execução de drop caches.

anon

Memória anônima usada pelo heap e pela stack de um programa. Alto uso sugere vazamento de memória do processo ou THP ativado.

mlock

Memória bloqueada pelo sistema.

huge

Memória usada por huge pages.

buffer

Memória usada por metadados de dispositivos de bloco e sistemas de arquivos.

shmem

Memória compartilhada (tmpfs). Vazamentos ocorrem se um arquivo tmpfs não for excluído após a saída do processo ou se for excluído enquanto ainda estiver aberto.

Análise de memória

A análise de memória divide-se em duas visualizações: memória de processo e memória de pod.

Memória de processo

A visualize de memória de processo mostra o uso por processo, incluindo memória anônima, page cache e memória compartilhada.

Memória de pod

A visualize de memória de pod indica quais arquivos ocupam page cache e memória compartilhada em cada container e pod, além das proporções de cache ativo e inativo.

Item de diagnóstico

Descrição

Pod

Nome do pod.

Container

Nome do container.

File

Caminho completo do arquivo, incluindo o nome.

Cache

Page cache (filecache) ocupado pelo arquivo.

Container Cache

Cache no nível do container ocupado pelo arquivo. Vários processos no mesmo container podem referenciar o mesmo arquivo.

Active Cache

Page cache atualmente em uso.

Inactive Cache

Page cache fora de uso e elegível para recuperação.

Análise de OOM

A análise de OOM diagnostica erros de out of memory e exibe os seguintes itens.

Item de diagnóstico

Descrição

OS OOM Count

Total de erros OOM desde a inicialização do host até o momento do diagnóstico.

Available Memory

Memória livre atual do sistema.

Low Watermark

Limiar baixo de memória. Quando a memória disponível cai abaixo desse valor, o kernel aciona uma operação assíncrona de recuperação para liberar espaço.

Container

Nome do pod, id do container ou nome do cgroup.

limit

Limite de memória configurado para o container.

usage

Memória atual utilizada pelo container.

OOM Count

Total de erros OOM ocorridos no container.

OOM Type

Tipo de erro OOM: Host ou cgroup.