Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Diagnóstico de memoria

Última actualización: Sep 04, 2026

Identifique fugas de memoria, fragmentación y errores OOM en clústeres de ACK mediante diagnósticos visuales.

El diagnóstico de memoria abarca tres áreas: descripción general de la memoria, análisis de memoria y análisis de OOM. Inspeccione la memoria tanto en el nodo como en el pod.

Nota

Los elementos de diagnóstico mostrados reflejan la configuración real de su clúster.

Importante

Al ejecutar los diagnósticos, ACK recopila datos de cada nodo, incluida la versión del sistema, el estado de carga, el estado de docker y kubelet, así como mensajes de error clave en los registros del sistema. ACK no recopila datos comerciales ni información confidencial.

Flujo de trabajo de diagnóstico

Utilice las tres áreas de diagnóstico en secuencia para acotar un problema de memoria:

  1. Descripción general de la memoria: compruebe si existen riesgos de memoria, como fugas, fragmentación, entradas Memcg no liberadas o desperdicio de THP. Use los gráficos para confirmar si el uso anómalo corresponde a la memoria del kernel o de la aplicación.

  2. Análisis de memoria: profundice en el uso de memoria a nivel de proceso y de pod para identificar qué proceso o contenedor consume una cantidad excesiva de memoria anónima, caché de páginas o memoria compartida.

  3. Análisis de OOM: revise el recuento y los tipos de eventos OOM para determinar si los errores ocurren a nivel de nodo (host) o de contenedor (cgroup), y qué contenedores han alcanzado sus límites de memoria.

Descripción general de la memoria

Identifica riesgos de memoria en los siguientes elementos de diagnóstico.

Elemento de diagnóstico

Descripción

Leaked Memory

Comprueba si hay fugas de memoria del kernel en Slab, Vmalloc y el sistema buddy (allocpage).

Memory Usage

Muestra la utilización de la memoria del sistema.

Memcg

Verifica si los grupos de control de memoria (Memcg) no liberados degradan el rendimiento del sistema o causan errores estadísticos.

Memory Fragmentation

Detecta fragmentación de memoria que degrade el rendimiento del sistema.

THPZeroPage

Evalúa la proporción de desperdicio de Transparent Huge Page (THP).

El uso de la memoria del sistema se grafica en tres categorías:

  • Memoria del kernel (kernel): memoria total que utiliza el kernel del sistema operativo.

  • Memoria de la aplicación (app): memoria total que utilizan los programas en modo usuario.

  • Memoria libre (free): memoria total disponible en el sistema.

Conceptos clave

A continuación se presentan los términos utilizados en el diagnóstico de memoria.

Término

Descripción

Fuga de memoria

Ocurre cuando la memoria asignada dinámicamente nunca se libera, lo que provoca un crecimiento continuo en su uso. Las fugas sin resolver degradan el rendimiento y pueden causar bloqueos.

Utilización de memoria

Utilización de memoria = (Memoria total - Memoria libre) x 100 / Memoria total. La caché de páginas cuenta como memoria libre y no afecta la utilización, ya que el kernel puede recuperarla en cualquier momento.

Memcg no liberado

Grupo de control de memoria que no se liberó debido a una excepción del sistema. Puede degradar el rendimiento.

Fragmentación de memoria

Con el tiempo, los bloques contiguos de memoria libre se vuelven demasiado pequeños para solicitudes de asignación grandes. Esto retrasa la asignación y causa inestabilidad en las aplicaciones.

Proporción de desperdicio de THP

Proporción de desperdicio de THP = Número de THP vacías x 100% / Número total de THP. Consulte la sección Detalles de THP más adelante.

Sistema buddy

Algoritmo del kernel de Linux para gestionar páginas de memoria. Divide las páginas en 11 grupos con tamaños de bloque en potencias de dos: 4 KB, 8 KB, 16 KB, 32 KB ... 4 MB. La mayoría de las páginas son de 4 KB.

Slab

Asigna pequeños fragmentos de memoria sobre el sistema buddy.

Vmalloc

Asigna memoria con asignación de memoria no lineal sobre el sistema buddy.

Caché de páginas (filecache)

Linux almacena en caché el contenido de archivos en la memoria para acelerar accesos posteriores.

Memoria anónima

Memoria asignada dinámicamente al heap y la pila de un proceso mediante new, malloc o mmap. No está respaldada por un sistema de archivos.

Memoria compartida

Bloque de memoria compartido por dos o más procesos para la comunicación entre ellos.

tmpfs

Sistema de archivos temporal de Linux respaldado por memoria. Todas las lecturas y escrituras se almacenan en caché en la memoria.

hugetlb

Memoria consumida por páginas enormes (huge pages) en un sistema de archivos.

Detalles de THP

Las Transparent Huge Pages (THP) son páginas enormes de 2 MiB o 1 GiB en el kernel. Cada subpágina es de 4 KiB, por lo que una THP de 2 MiB equivale a 512 subpáginas.

Con THP habilitado, el kernel asigna dinámicamente estas páginas para reducir los fallos en el Translation Lookaside Buffer (TLB) y mejorar el rendimiento. Sin embargo, THP puede provocar inflación de memoria y sobreasignación: cuando una aplicación solicita solo 8 KiB (2 subpáginas), el kernel asigna una THP completa de 2 MiB, deja 510 subpáginas vacías que desperdician espacio residente (RSS) y pueden desencadenar errores OOM.

Métricas de memoria del kernel

En la mayoría de los casos, las fugas de memoria se manifiestan mediante un uso anómalo en Sunreclaim o en el sistema buddy. Supervise estas métricas de cerca.

Métrica

Descripción

SReclaimable

Memoria que Slab puede recuperar.

Sunreclaim

Memoria que Slab no puede recuperar. Un crecimiento anómalo indica fuertemente una fuga de memoria del kernel.

PageTables

Memoria ocupada por las tablas de páginas del kernel.

Vmalloc

Memoria asignada por Vmalloc.

KernelStack

Memoria total de pila del kernel que utilizan los procesos.

AllocPages

Memoria asignada desde el sistema buddy mediante funciones como alloc_pages. No se puede consultar mediante ningún archivo de nodo; su uso excesivo crea un agujero negro de memoria.

Métricas de memoria de la aplicación

Al analizar el uso de memoria en modo usuario, céntrese en la memoria anónima, la memoria compartida y la caché de páginas.

Métrica

Descripción

filecache

Caché de páginas que se puede recuperar al ejecutar drop caches.

anon

Memoria anónima que utilizan el heap y la pila de un programa. Un uso elevado sugiere una fuga de memoria en el proceso o que THP está habilitado.

mlock

Memoria bloqueada por el sistema.

huge

Memoria que utilizan las páginas enormes.

buffer

Memoria que utilizan los metadatos de dispositivos de bloque y sistemas de archivos.

shmem

Memoria compartida (tmpfs). Se producen fugas si un archivo tmpfs no se elimina después de que el proceso finaliza, o si se elimina un archivo mientras aún está abierto.

Análisis de memoria

Proporciona dos vistas: memoria de procesos y memoria de pods.

Memoria de procesos

Enumera los procesos ordenados por uso de memoria y desglosa la memoria anónima, la caché de páginas y la memoria compartida.

Memoria de pods

Muestra qué archivos ocupan caché de páginas y memoria compartida en cada contenedor y pod, junto con las proporciones de caché activa e inactiva.

Elemento de diagnóstico

Descripción

Pod

Nombre del pod.

Container

Nombre del contenedor.

File

Ruta completa del archivo, incluido su nombre.

Cache

Caché de páginas (filecache) ocupada por el archivo.

Container Cache

Caché a nivel de contenedor ocupada por el archivo. Varios procesos en el mismo contenedor pueden hacer referencia al mismo archivo.

Active Cache

Caché de páginas actualmente en uso.

Inactive Cache

Caché de páginas no utilizada, apta para recuperación.

Análisis de OOM

Diagnostica errores de falta de memoria (out-of-memory) en los siguientes elementos.

Elemento de diagnóstico

Descripción

OS OOM Count

Total de errores OOM desde el inicio del host hasta el diagnóstico.

Available Memory

Memoria libre actual del sistema.

Low Watermark

Umbral bajo de memoria. Cuando la memoria disponible cae por debajo de este valor, el kernel activa la recuperación asíncrona de memoria.

Container

Nombre del pod, ID del contenedor o nombre del cgroup.

limit

Límite de memoria configurado para el contenedor.

usage

Memoria que utiliza actualmente el contenedor.

OOM Count

Total de errores OOM en el contenedor.

OOM Type

Tipo de error OOM: Host o cgroup.