Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Síntomas de routers IOS XE que se quedan sin memoria

Información sobre las necesidades del TAC para el diagnóstico inicial

Uso elevado de memoria

EEM supervisará la utilización de la memoria

Desencadenadores

Archivo principal

Introducción

Este documento describe sugerencias generales para la solución de problemas para recopilar información adicional para un problema de pérdida de memoria.

Prerequisites

Requirements

Cisco recomienda tener conocimientos básicos sobre estos temas:

- Conocimientos básicos de Cisco IOS® XE

- Conocimientos básicos de Embedded Event Manager (EEM)

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware. Se aplica a cualquier plataforma de routing Cisco IOS XE, como ASR1000, ISR4000, ISR1000, Cat8000 o Cat8000v.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Antecedentes

En este documento, puede encontrar registros comunes que el dispositivo genera en caso de una alta utilización de la memoria.

Además, puede ver cómo puede beneficiarse de la función Embedded Event Manager para ayudar al TAC a supervisar y obtener datos sobre situaciones en las que el router IOS XE se está quedando con frecuencia sin memoria.

El objetivo de este documento no es explicar exhaustivamente los procedimientos de solución de problemas, si están disponibles, sino que sólo se proporcionan referencias a guías de resolución de problemas más detalladas.

Síntomas de routers IOS XE que se quedan sin memoria

Cuando se trata de problemas de uso elevado de memoria, normalmente aparece un mensaje de registro que indica que se ha alcanzado el límite de advertencia del 85%. Este valor varía en función de la versión. Se generan diferentes registros dependiendo de dónde encontró el problema el sistema:

Problemas de TCAM:

CPP_FM-3-CPP_FM_TCAM_WARNING

IOSd (plano de control):

SYS-2-MALLOCFAIL

SYS-2-CHUNKEXPANDFAIL

SYS-4-CHUNKSIBLINGSEXCEED

QFP (plano de datos):

QFPOOR-4-LOWRSRC_PERCENT_WARN

QFPOOR-4-TOP_EXMEM_USER

CPPEXMEM-3-NOMEM

CPPEXMEM-3-TOPUSER

Sistema de archivos temporal (TMPFS):

PLATFORM-3- ELEMENT_TMPFS_WARNING

Registro general del sistema (necesita aislamiento):

PLATFORM-4-ELEMENT_WARNING

PLATFORM-3-ELEMENT_CRITICAL

Nota: Las mejoras de registro están disponibles a partir de la versión 16.12 y posteriores.

Información sobre las necesidades del TAC para el diagnóstico inicial

- Salida de comandos:

show clock

show version

show platform resources

show platform software status control-processor brief

show process memory sorted

show memory statistics

show memory allocation-process totals

show process memory platform sorted

show logging

- En caso de una recarga inesperada debido a una condición de memoria baja:

informe del sistema/archivo principal

- Gráfico de utilización de la memoria a lo largo del tiempo.

Adjuntar un show tech es deseable, es útil para el TAC, y usted puede beneficiarse de la automatización que el TAC ha desarrollado para ayudarle a encontrar problemas más rápidamente.

Las condiciones que conducen a una alta utilización de la memoria siempre están relacionadas con el software. Sin embargo, no todos los casos de uso elevado de memoria son inesperados. Es importante tener en cuenta la DRAM disponible y la combinación de funciones que se ejecutan en el dispositivo.

La resolución de problemas de alta utilización de memoria es más suave, más eficaz y con una mejor interacción del TAC si utiliza Radkit. Esta herramienta, desarrollada por Cisco, proporciona al TAC una forma fácil y muy segura de acceder a los dispositivos que seleccione en la red. Para obtener más información, visite: Cisco RADKit

Nota: Asegúrese de que está ejecutando una versión compatible. Busque el documento de fin de venta y fin del ciclo de vida de la versión. Si es necesario, cambie a una versión que se encuentre actualmente en las versiones de mantenimiento de software. De lo contrario, el TAC se puede limitar en cuanto a las opciones de resolución y resolución de problemas.

Para obtener un documento completo sobre la resolución de problemas de memoria, consulte estas guías:

En ISR4K: Guía de resolución de problemas de memoria para ISR de Cisco serie 4000.

En ASR1K: Guía de resolución de problemas de memoria del router serie ASR 1000.

Uso elevado de memoria

En los routers Cisco IOS XE, la DRAM es uno de los recursos más importantes que admite la funcionalidad principal. DRAM se utiliza para almacenar diferentes tipos de datos y procesos/características de información que son esenciales para las operaciones tanto del plano de control como del plano de datos.

Los usos principales de la DRAM en routers IOS XE incluyen:

Memoria IOSd (Control Plane Structures): Almacena información relacionada con los procesos relacionados con el plano de control del dispositivo, como: información/protocolos de routing, estructuras de gestión de red, configuraciones del sistema e información de funciones.

Memoria QFP (estructuras de plano de datos): almacena todo lo relacionado con las operaciones QFP gestionadas por el microcódigo, como las estructuras clave de las funciones almacenadas en QFP, las instrucciones de microcódigo y las instrucciones de reenvío.

Temporary File System (TMPFS): montado en DRAM y administrado por IOSd, TMPFS actúa como un área de almacenamiento de acceso rápido para los archivos que necesitan los procesos. En caso de que esos archivos sean persistentes, se mueven a un disco duro/bootflash. Mejora el rendimiento del sistema al reducir los tiempos de lectura y escritura de los datos temporales.

Procesos generales que se ejecutan en el núcleo de Linux: dado que IOS XE funciona en un núcleo basado en Linux, DRAM también admite varios procesos del sistema que se ejecutan en la parte superior de este núcleo.

Una alta utilización de memoria superior al 85% indica normalmente un consumo de DRAM significativo, lo que puede afectar al rendimiento del router. Este uso elevado puede ser el resultado de demandas legítimas, como el almacenamiento de tablas de ruteo extensas o la habilitación de funciones de uso intensivo de recursos. Sin embargo, también puede señalar problemas como la gestión ineficiente de la memoria por ciertas características o pérdidas de memoria, donde la memoria no se libera correctamente al sistema después de su uso.

Al monitorear la utilización de la memoria a través de la memoria IOSd, la memoria QFP, TMPFS y los procesos generales de Linux, usted y el TAC pueden identificar los posibles problemas en forma temprana.

EEM supervisará la utilización de la memoria

Para solucionar problemas de memoria, el TAC necesita recopilar un conjunto de comandos durante un período de tiempo para identificar el proceso infractor. A veces, después de identificar el proceso culpable, se necesitan comandos específicos adicionales, lo que hace que la resolución de problemas de memoria sea uno de los tipos de resolución de problemas que más tiempo consumen.

Para facilitar esta solución de problemas, puede utilizar la función EEM para supervisar y recopilar información automáticamente. Hay dos consideraciones principales para escribir la secuencia de comandos EEM: el desencadenador y los comandos que se deben recopilar.

Desencadenadores

Patrón. Puede utilizar el patrón de la sección Síntomas de los routers Cisco IOS XE que se quedan sin memoria. El formato es similar al siguiente:

event syslog pattern <pattern> ratelimit 300 maxrun 180

Una de las consideraciones al utilizar un patrón como disparador, es que el registro se genera una vez que se alcanza el umbral de advertencia, dependiendo de la tasa de consumo de memoria, al intentar hacerlo manualmente, usted o el TAC no tienen tiempo suficiente para una resolución de problemas más detallada.

Temporizador Cron. Ejemplo de un temporizador cron que se activará cada 30 minutos:

event timer cron name HalfHour cron-entry "*\30 * * * *"

Una de las ventajas de un temporizador cron sobre un patrón es que no es necesario esperar hasta que el dispositivo casi se quede sin recursos de memoria para recopilar información. Dependiendo de la tasa de consumo de memoria, con la supervisión y la información adecuadas, el TAC puede identificar el proceso ofendido antes de alcanzar el umbral de advertencia.

Nota: Las opciones de límite de velocidad y maxrun se utilizan para garantizar que se recopile todo el conjunto de salidas. También ayudan a evitar ruidos adicionales o la activación de EEM en situaciones en las que aparecen varios registros en un corto período de tiempo.

Ejemplos de EEM con comandos generales para el triaje inicial:

configure terminal

event manager applet TAC_EEM authorization bypass

event syslog pattern " PLATFORM-4-ELEMENT_WARNING" ratelimit 300 maxrun 180

action 0.1 cli command "enable"

action 0.2 cli command "term exec prompt timestamp"

action 0.3 cli command "term length 0"

action 0.4 cli command "show process memory platform sorted | append bootflash:TAC_EEM.txt"

action 0.5 cli command "show processes memory platform sorted location chassis 1 R0 | append bootflash:TAC_EEM.txt"

action 0.9 cli command "show platform resources | append bootflash:TAC_EEM.txt"

action 1.0 cli command "show platform software status control-processor brief | append bootflash:TAC_EEM.txt"

action 1.1 cli command "show clock | append bootflash:TAC_EEM.txt"

action 1.3 cli command "show platform software process memory chassis active r0 all sorted | append bootflash:TAC_EEM.txt"

action 1.5 cli command "show process memory platform accounting | append bootflash:TAC_EEM.txt"

Monitorear diariamente con un temporizador cron:

configure terminal

event manager applet TAC_EEM2 authorization bypass

event timer cron name DAYLY cron-entry "0 0 * * *"

action 0.1 cli command "enable"

action 0.2 cli command "term exec prompt timestamp"

action 0.3 cli command "term length 0"

action 0.4 cli command "show process memory platform sorted | append bootflash:TAC_EEM2.txt"

action 0.5 cli command "show processes memory platform sorted location chassis 1 R0 | append bootflash:TAC_EEM2.txt"

action 0.6 cli command "show processes memory platform sorted location chassis 2 R0 | append bootflash:TAC_EEM2.txt"

action 0.9 cli command "show platform resources | append bootflash:TAC_EEM2.txt"

action 1.0 cli command "show platform software status control-processor brief | append bootflash:TAC_EEM2.txt"

action 1.1 cli command "show log | append bootflash:TAC_EEM2.txt"

action 1.2 cli command "show clock | append bootflash:TAC_EEM2.txt"

action 1.3 cli command "show platform software process memory chassis active r0 all sorted | append bootflash:TAC_EEM2.txt"

action 1.5 cli command "show process memory platform accounting | append bootflash:TAC_EEM2.txt"

Para obtener una lista más completa de comandos, consulte las guías de la sección Información sobre las necesidades del TAC para el triaje inicial.

Archivo principal

Cuando la utilización de la memoria alcanza un nivel crítico, lo más probable es que el sistema operativo fuerce una caída para recuperarse de esta condición, generando un informe del sistema que contiene un archivo de núcleo.

El archivo de núcleo es el volcado completo de memoria para un proceso determinado que se estrelló en un momento determinado. Este archivo de núcleo es crítico para que el TAC inspeccione la memoria y analice el código fuente para entender las condiciones y las posibles razones de la recarga inesperada/caída del proceso.

El archivo de núcleo ayuda al TAC y a los desarrolladores a encontrar la causa raíz del problema, depurar y solucionar el problema.

Nota: Aunque el TAC y los desarrolladores se esfuerzan por obtener una causa raíz, hay ocasiones en las que el desperfecto fue consecuencia de un evento de red o de un problema de sincronización que hace que sea prácticamente imposible reproducirlo en el laboratorio.

Para obtener más información sobre las recargas inesperadas y cómo recuperar un archivo de núcleo, refiérase a Resolución de Problemas de Recargas Inesperadas en Plataformas Cisco IOS® con TAC.