Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Convenciones

¿Qué significa falla de asignación de memoria?

Síntomas

Error "No se puede crear EXEC" o cuando la consola no responde

Comprender el mensaje de error

Posibles Causas

En la memoria del procesador ("Procesador de agrupaciones" en todas las plataformas)

En memoria de paquete ("I/O" o " Processor" en routers de mayor capacidad, "PCI" en serie 7200 y tarjetas VIP)

Troubleshoot

Problema de seguridad

El tamaño de la memoria no soporta la imagen de software del IOS de Cisco

Error de funcionamiento de fuga de memoria

El proceso *Dead*

Gran cantidad de memoria usada para procesos normales o anormales

Error de funcionamiento o problema de fragmentación de la memoria

Error de asignación de memoria en el proceso = nivel de interrupción

Agotamiento de memoria debido a la descarga de listas de acceso por usuario

Problemas conocidos

Problema conocido de 70x0 cuando se carga un software Cisco IOS grande desde Flash o Netboot

Entrada IP y detección de CiscoWorks UT

Memoria compartida insuficiente para las interfaces

Error de fuga en memoria intermedia

El router se queda sin memoria rápida

IPFAST-4-RADIXDELETE: Error al intentar eliminar la entrada de prefijo [IP_address]/[dec] (se esperaba [hex], se obtuvo [hex])

%SYS-2-CHUNKEXPANDFAIL: no se pudo expandir el grupo de fragmentos para el mapa de bits TACL. No hay memoria disponible

Summary

Fallas de asignación de memoria del procesador de agrupaciones

Agrupar fallas de asignación de memoria de "I/O" ("Procesador" en routers de mayor capacidad, "PCI" en la serie 7200)

Información Relacionada

Introducción

Este documento describe los síntomas y las posibles causas de la falla de asignación de memoria (MALLOCFAIL) y detalla cómo solucionar estos problemas.

Prerequisites

Requirements

No hay requisitos específicos para este documento.

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Todas las versiones del IOS® de Cisco

- Todos los routers Cisco

Nota: Este documento no se aplica a los switches Cisco Catalyst que utilizan las plataformas CatOS o MGX.

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.

Convenciones

Consulte Convenciones de Consejos TécnicosCisco para obtener más información sobre las convenciones del documento.

¿Qué significa falla de asignación de memoria?

La falla de asignación de memoria significa:

- El router ha utilizado toda la memoria disponible (temporal o permanentemente) o

- La memoria se ha fragmentado en trozos tan pequeños que el router no puede encontrar un bloque utilizable disponible. Esto puede ocurrir con la memoria del procesador (utilizada por el sistema operativo de Internet de Cisco [IOS de Cisco]) o con la memoria de paquetes (utilizada por los paquetes entrantes y salientes).

Síntomas

Los síntomas de falla de asignación de memoria incluyen, pero no se limitan a:

- Mensaje de la consola o del registro: "%SYS-2-MALLOCFAIL: Error en la asignación de memoria de 1028 bytes desde 0x6015EC84, Procesador de grupo, alineación 0"

- Sesiones Telnet denegadas

- Se muestra el comando show processor memory, independientemente del comando ingresado en una consola

- No hay salida de algunos comandos show

- Mensajes con "memoria insuficiente"

- El mensaje de la consola "No se puede crear EXEC - no hay memoria o hay demasiados procesos"

- Router colgado, sin respuesta de consola.

Error "No se puede crear EXEC" o cuando la consola no responde

Cuando un router tiene poca memoria, en algunos casos no es posible establecer una conexión Telnet con el router. En este punto, es importante obtener acceso al puerto de la consola para recopilar datos para la resolución de problemas. Sin embargo, cuando se conecta al puerto de la consola, puede ver lo siguiente:

%% Unable to create EXEC - no memory or too many processes

Si ve el mensaje anterior, no hay suficiente memoria disponible para permitir una conexión de consola. Existen pasos que puede realizar para permitir la captura de datos a través de la consola. Si ayuda al router a liberar memoria, la consola puede responder y, a continuación, puede capturar los datos necesarios del router para la resolución de problemas.

Nota: Si el protocolo de gateway fronterizo (BGP) está configurado en el router, puede consultar Lograr un ruteo óptimo y reducir el consumo de memoria BGP para reducir el consumo de memoria relacionado con este proceso.

Estos son los pasos a seguir para capturar datos cuando el puerto de la consola se encuentra en condiciones de memoria muy baja:

1. Desconecte los cables LAN y WAN de las interfaces del router. Esto puede hacer que el router deje de pasar paquetes.

2. Vuelva a comprobar la consola. ¿Es capaz de obtener una respuesta y ejecutar comandos? Después de unos instantes, debe haber suficiente memoria disponible para que la consola pueda responder.

3. Recopile la información necesaria del modo EXEC privilegiado (Router#). Como mínimo, desea recopilar la salida completa de estos comandos: show memory allocation-process totals (o show memory summary si show memory allocation-process totals no está disponible), show logging , y si es posible, show technical-support.

4. Una vez recopilados los datos necesarios, vuelva a conectar todos los enlaces LAN y WAN y continúe supervisando el uso de la memoria del router.

Comprender el mensaje de error

Cuando ejecuta un comando show logging, debe ver algo como esto:

%SYS-2-MALLOCFAIL: Memory allocation of [X] bytes failed from

0x6015EC84, pool [Pool], alignment 0 -Process=

"[Process]" ipl= 6, pid=5

[X] = la cantidad de bytes que el router intentó pero no pudo asignar por no contar con memoria libre suficiente

[Pool] indica si la memoria del procesador (' Pool Processor ') o la memoria del paquete (' pool I/O ') se ve afectada. Los routers de gama alta (series 7000 y 7500) tienen sus búferes en la memoria de acceso aleatorio dinámica (DRAM) principal, por lo que la falta de memoria de paquetes se puede notificar como "procesador de grupo". Las tarjetas de la serie 7200 y del Procesador de interfaz versátil (VIP) también pueden informar errores en la Información de control de protocolo del grupo (' pool PCI ')" para la memoria del paquete.

[Process] es el proceso afectado por la falta de memoria.

Posibles Causas

En la memoria del procesador ("Procesador de agrupaciones" en todas las plataformas)

El tamaño de la memoria no soporta la imagen de software del IOS de Cisco

Error de funcionamiento de fuga de memoria

Gran cantidad de memoria usada para procesos normales o anormales

Error de funcionamiento o problema de fragmentación de la memoria

Falla en la asignación de memoria en el proceso = <nivel de interrupción>

Problemas conocidos

Problema conocido de 70x0 al cargar el software Cisco IOS de gran tamaño desde Flash o Netboot

Entrada IP y detección de CiscoWorks UT

En memoria de paquete ("I/O" o " Processor" en routers de mayor capacidad, "PCI" en serie 7200 y tarjetas VIP)

Memoria compartida insuficiente para las interfaces

Error de fuga en memoria intermedia

El router no cuenta con la memoria rápida suficiente

Troubleshoot

Problema de seguridad

Por lo general, los errores MALLOCFAIL son causados por un problema de seguridad, como un gusano o virus que opera en su red. Esto es especialmente probable que sea la causa si no ha habido cambios recientes en la red, como una actualización del IOS de Cisco del router. Por lo general, un cambio de configuración, como si agrega líneas adicionales a sus listas de acceso, puede mitigar los efectos de este problema. La página Avisos y avisos de seguridad de productos de Cisco contiene información sobre la detección de las causas más probables y soluciones alternativas específicas.

Para obtener información adicional, consulte:

- 100 preguntas y respuestas sobre riesgos relacionados con Internet

- Control de amenazas de Cisco

El tamaño de la memoria no soporta la imagen de software del IOS de Cisco

En primer lugar, consulte el Área de descarga de software para ver el tamaño mínimo de memoria del conjunto de funciones y la versión que ejecuta. Asegúrese de que es suficiente. Los requisitos de memoria de Cisco.com son los tamaños mínimos recomendados para el correcto funcionamiento del router en la mayoría de las redes de la empresa. Los requisitos de memoria reales varían en función de los protocolos, las tablas de routing y los patrones de tráfico.

Nota: solo los usuarios registrados de Cisco tienen acceso a la información y las herramientas internas de Cisco.

Error de funcionamiento de fuga de memoria

Si tiene el resultado de un comando show memory allocation-process totals, un comando show memory summary o un comando show technical-support (en modo de habilitación) de su dispositivo Cisco, puede utilizar Output Interpreter para mostrar los posibles problemas y soluciones.

Nota: solo los usuarios registrados de Cisco tienen acceso a la información y las herramientas internas de Cisco.

Una pérdida de memoria se produce cuando un proceso solicita o asigna memoria y, a continuación, se olvida de liberar (desasignar) la memoria cuando finaliza esa tarea. Como resultado, se reserva el bloque de memoria hasta que se recarga el router. Con el tiempo, ese proceso asigna cada vez más bloques de memoria hasta que no hay memoria libre disponible. En función de la gravedad de la situación de memoria baja en este momento, la única opción que tiene es volver a cargar el router para que vuelva a funcionar.

Este es un bug del Sistema Operativo de Internet de Cisco (Cisco IOS). Para deshacerse de él, actualice a la última versión de su tren de versiones; por ejemplo, si ejecuta la versión 11.2(14) del software del IOS de Cisco, actualice a la última imagen de la versión 11.2(x).

Si esto no soluciona el problema, o si no desea actualizar el router, ingrese el comando show processes memory a intervalos regulares durante un período de tiempo (por ejemplo, cada pocas horas o días según si tiene una fuga rápida o lenta). Compruebe si la memoria libre sigue disminuyendo y si nunca se devuelve. La velocidad en que la memoria libre desaparece depende de la frecuencia con que ocurre el evento que ocasiona la pérdida. Dado que la memoria nunca se libera, puede realizar un seguimiento del proceso que utiliza la memoria si toma instantáneas de la memoria a lo largo del tiempo. Tenga en cuenta que los diferentes procesos asignan y desasignan memoria según sea necesario, por lo que puede ver las diferencias, pero a medida que la fuga continúa, debe ver un proceso que consume continuamente más memoria.

Nota: es normal que algunos procesos, como el protocolo de gateway fronterizo (BGP) o el router OSPF (Open Shortest Path First, Ruta de acceso más corta primero), utilicen más de un megabyte de memoria; esto no significa que se estén perdiendo.

Para identificar el proceso que consume más memoria, compare la columna Holding del comando show processes memory durante el intervalo de tiempo. En ocasiones, puede ver claramente que un proceso retiene varios megabytes de memoria. A veces toma diversas instantáneas para encontrar la interferencia. Cuando se haya perdido una cantidad significativa de memoria, recopile el comando show memory allocation-process totals o el comando show memory summary para obtener una solución de problemas adicional. A continuación, póngase en contacto con el centro de asistencia técnica Cisco Technical Assistance Center (TAC) y proporciónele la información que ha recopilado, junto con un resumen de show technical-support del router.

La herramienta Output Interpreter le permite recibir un análisis del comando show memory allocation-process totals o del resultado show memory summary.

Nota: solo los usuarios registrados de Cisco tienen acceso a la información y las herramientas internas de Cisco.

La tabla muestra las tres primeras líneas del resultado del comando show memory summary:

Router>show memory summary

Head       Total (b)   Used (b)  Free (b)   Lowest (b)  Largest (b)

Processor   60AB4ED0   5550384     2082996   3467388    3464996     3454608

I/O         40000000   16777216    1937280   14839936   14839936    14838908

Total = la cantidad total de memoria disponible después de que la imagen del sistema se cargue y construya sus estructuras de datos.

Utilizado = la cantidad de memoria asignada actualmente.

Libre = la cantidad de memoria actualmente libre.

Menor = la menor cantidad de memoria libre registrada por el router desde la última vez que se inició.

Largest= el bloque de memoria más grande actualmente disponible.

El comando show memory allocation-process totals contiene la misma información que las tres primeras líneas del comando show memory summary.

Esto es lo que puede conocer a través del resultado del comando show processes memory:

Router>show processes memory

Total: 3149760, Used: 2334300, Free: 815460

PID   TTY   Allocated    Freed      Holding    Getbufs    Retbufs   Process

0     0     226548       1252       1804376    0          0         *Initialization*

0     0     320          5422288    320        0          0         *Scheduler*

0     0     5663692      2173356    0          1856100    0         *Dead*

1     0     264          264        3784       0          0         Load Meter

2     2     5700         5372       13124      0          0         Virtual Exec

3     0     0            0          6784       0          0         Check heaps

4     0     96           0          6880       0          0         Pool Manager

5     0     264          264        6784       0          0         Timers

6     0     2028         672        8812       0          0         ARP Input

7     0     96           0          6880       0          0         SERIAL A' detect

8     0     504          264        7024       0          0         ATM ILMI Input

9     0     0            0          6784       0          0         ILMI Process

10    0     136          0          6920       0          0         M32_runts pring

11    0     136          0          6920       0          0         Call drop procs

12    0     340          340        12784      0          0         ATMSIG Timer

13    0     445664       442936     13904      0          0         IP Input

14    0     2365804      2357152    17992      0          0         CDP Protocol

15    0     528          264        7048       0          0         MOP Protocols

16    0     188          0          9972       0          0         IP Background

17    0     0            1608       6784       0          0         TCP Timer

18    0     5852116      0          14236      0          0         TCP Protocols

Asignado = la cantidad total de bytes asignados por el proceso desde el reinicio del router.

Liberados = cantidad total de bytes liberados en este proceso.

En espera = la cantidad total de bytes que actualmente tiene este proceso. Esta es la columna más importante para la solución de problemas ya que muestra la cantidad real de memoria que se atribuye a este proceso. Poner en espera no siempre es equivalente a Asignadas menos Liberadas dado que algunos procesos asignan un bloque de memoria que luego se devuelve a la agrupación disponible por medio de otro proceso.

El proceso *Dead*

El proceso *dead* no es un proceso real. Está ahí para dar cuenta de la memoria asignada bajo el contexto de otro proceso que ha terminado. El núcleo recupera la memoria asignada a este proceso y el propio router la devuelve al grupo de memoria cuando es necesario. Esta es la manera en que el IOS de Cisco maneja la memoria. Un bloque de memoria se considera muerto si el proceso que creó el bloque sale (ya no se ejecuta). Cada bloque realiza un seguimiento de la dirección y el pid del proceso que lo creó. Durante el recuento periódico de memoria, si el proceso que el programador descubre de un pid de bloque no coincide con el proceso que el bloque recordaba, el bloque se marca como muerto.

Por lo tanto, la memoria marcada como perteneciente al proceso *Dead* fue asignada bajo el control de un proceso que ya no se ejecuta. Es normal tener un pedazo significativo de la memoria en tal estado. Aquí tiene un ejemplo:

La memoria se asigna cuando la traducción de direcciones de red (NAT) se configura durante una sesión Telnet. Esa memoria se contabiliza bajo el proceso Telnet ("Virtual Exec"). Una vez finalizado este proceso, la memoria para la configuración NAT sigue en uso. Esto se muestra con el proceso *dead*.

Puede ver en qué contexto se asignó la memoria con el show memory dead en la columna "Qué":

Router#show memory dead

Head   Total(b)    Used(b)    Free(b)  Lowest(b) Largest(b)

I/O    600000    2097152     461024    1636128    1635224    1635960

Processor memory

Address  Bytes Prev.    Next     Ref  PrevF   NextF   Alloc PC  What

1D8310       60 1D82C8   1D8378     1                  3281FFE   Router Init

2CA964       36 2CA914   2CA9B4     1                  3281FFE   Router Init

2CAA04      112 2CA9B4   2CAAA0     1                  3A42144   OSPF Stub LSA RBTree

2CAAA0       68 2CAA04   2CAB10     1                  3A420D4   Router Init

2ED714       52 2ED668   2ED774     1                  3381C84   Router Init

2F12AC       44 2F124C   2F1304     1                  3A50234   Router Init

2F1304       24 2F12AC   2F1348     1                  3A420D4   Router Init

2F1348       68 2F1304   2F13B8     1                  3381C84   Router Init

300C28      340 300A14   300DA8     1                  3381B42   Router Init

Si se detecta una pérdida de memoria y el proceso *Dead* parece ser el que consume la memoria, incluya un show memory dead en la información proporcionada al TAC de Cisco.

Gran cantidad de memoria usada para procesos normales o anormales

Esta es una de las causas más difíciles de verificar. El problema se caracteriza por una gran cantidad de memoria libre, pero un valor bajo en la columna "Más baja". En este caso, un evento normal o anormal (por ejemplo, una gran inestabilidad de ruteo) hace que el router emplee una gran cantidad de memoria de procesador para un breve lapso de tiempo durante el cual la memoria se ha agotado. Durante ese período, el router informa sobre MALLOCFAIL. Puede suceder que poco después, la memoria se libere y el problema desaparezca (por ejemplo, la red se estabilice). La escasez de memoria también puede deberse a una combinación de factores, como:

- una pérdida de memoria que ha consumido una gran cantidad de memoria y después una inestabilidad de memoria fuerza la memoria libre a cero.

- el router no tiene suficiente memoria para comenzar, pero el problema se detecta sólo durante un evento de red poco frecuente.

Si el router no se ha reiniciado, introduzca el show memory allocating-process totals (o el comando show memory summary si show memory allocating-process totals  no está disponible) y observe las tres primeras líneas. Los mensajes de registro pueden proporcionar pistas sobre qué proceso consumió mucha memoria:

Si el uso de memoria grande se debió a:

- evento normal, la solución es instalar más memoria.

- evento raro o anormal, resuelva el problema relacionado. Entonces puede decidir comprar memoria extra para un futuro "seguro".

Error de funcionamiento o problema de fragmentación de la memoria

Esta situación significa que un proceso ha consumido una gran cantidad de memoria del procesador y luego liberó la mayor parte o la totalidad de ella y deja fragmentos de memoria todavía asignados por este proceso o por otros procesos que asignaron memoria a lo largo del problema. Si el mismo evento ocurre varias veces, la memoria puede fragmentarse en bloques muy pequeños, hasta el punto en que todos los procesos que requieren un bloque de memoria más grande no pueden obtener la cantidad de memoria que necesitan. Esto puede afectar el funcionamiento del router en la medida en que no pueda conectarse al router y reciba un mensaje si la memoria está muy fragmentada.

Este problema se caracteriza por un valor bajo en la columna "Mayor" (menos de 20.000 bytes) del show memory , pero un valor suficiente en la columna "Liberado" (1 MB o más), o alguna otra amplia disparidad entre las dos columnas. Esto puede suceder cuando el router tiene muy poca memoria, ya que no hay rutina de fragmentación en el IOS de Cisco.

Si suspende la fragmentación de la memoria, cierre algunas interfaces. Esto puede liberar los bloques fragmentados. Si esto funciona, la memoria se comporta con normalidad, y todo lo que tiene que hacer es agregar más memoria. Si cuando cierra interfaces no ayuda, puede ser un error de funcionamiento. La mejor forma de proceder es ponerse en contacto con el representante de soporte técnico de Cisco para obtener la información que ha recopilado.

Error de asignación de memoria en el proceso = nivel de interrupción

Esta situación puede ser identificada por el proceso en el mensaje de error. Si el proceso aparece como <nivel de interrupción>, como en el siguiente ejemplo, la falla de asignación de memoria es causada por un problema de software.

"%SYS-2-MALLOCFAIL: Memory allocation of 68 bytes failed from 0x604CEF48,

pool Processor, alignment 0-Process=

, ipl= 3"

Este es un bug del Sistema Operativo de Internet de Cisco (Cisco IOS). Puede utilizar el Bug Toolkit para buscar un ID de bug de software coincidente para este problema. Una vez identificado el error de funcionamiento del software, actualice a una versión de software del IOS de Cisco que contenga la solución para resolver el problema.

Nota: solo los usuarios registrados de Cisco tienen acceso a la información y las herramientas internas de Cisco.

Agotamiento de memoria debido a la descarga de listas de acceso por usuario

Las listas de acceso pueden consumir una gran cantidad de memoria cuando se utilizan por usuario. Las listas de acceso son demasiado grandes para clasificarlas como mini listas de control de acceso (ACL) y ahora se compilan como turbo ACL. Cada vez que esto ocurre, el proceso TACL tiene que iniciar y procesar la nueva ACL. Esto puede dar lugar a que se permita o deniegue el tráfico en función del tiempo de compilación y el tiempo de proceso disponible.

Las ACL compiladas deben enviarse a XCM. Cuando sólo hay espacio limitado disponible y una vez que se ejecuta la memoria de la misma, se ven los mensajes de la consola y se inicia el desfragmentador de memoria.

Esta es la solución temporal:

- Uso de ACL concisas, menor número de motores de control de aplicaciones (ACE) que se pueden compilar como mini ACL y que pueden reducir tanto el consumo de memoria como la potencia de proceso para la compilación.

- Uso de ACL predefinidas en el router a las que se hace referencia mediante el atributo radius filterID.

Problemas conocidos

Problema conocido de 70x0 cuando se carga un software Cisco IOS grande desde Flash o Netboot

Cuando un procesador de ruta (RP) 7000 carga una imagen desde Flash, primero carga en la memoria la imagen ROM y luego la Flash. El RP antiguo sólo tiene 16 MB de memoria, y las versiones empresariales de la versión del software del IOS de Cisco posterior a la versión 11.0 tienen más de 8 MB cuando no están comprimidas. Por lo tanto, cuando carga la imagen desde ROM y luego Flash, el RP 7000 puede quedarse sin memoria, o la memoria puede fragmentarse durante el proceso de arranque para que el router tenga mensajes de error relacionados con la memoria.

La solución es habilitar el inicio rápido desde el registro de configuración para que el RP sólo cargue un subconjunto mínimo de la imagen del software del IOS de Cisco en ROM y luego cargue el software completo del IOS de Cisco desde Flash. Para activar Fast Boot (Inicialización rápida), establezca el registro de configuración en 0x2112. Esto también puede acelerar el proceso de arranque.

Entrada IP y detección de CiscoWorks UT

Con la función UT Discovery de CiscoWorks puede hacer que la cantidad de memoria libre se vuelva muy pequeña en algunos de sus routers. El comando show proc memory puede indicar una gran cantidad de memoria retenida por el proceso de "entrada IP". Este es un caso particular del problema de Gran Cantidad de Memoria Usada para Procesos Normales o Anormales para el proceso de "Entrada IP", que también puede resultar en un problema de Fragmentación de Memoria, si la condición de memoria baja hace que la memoria se fragmente.

La función UT Discovery hace que la Estación de administración de redes envíe un barrido de ping para todas las IP en cada subred detectada. Los problemas de memoria son causados por el aumento del tamaño de la memoria caché de IP fast-switching en el router porque se crean nuevas entradas de memoria caché para cada nuevo destino. Dado que la máscara utilizada para las entradas en la memoria caché depende de cómo se divide en subredes, la presencia de una dirección con una máscara de 32 bits (por ejemplo, una dirección de loopback) en una red principal hace que todas las entradas de esa red utilicen una máscara de 32 bits. Esto da como resultado la creación de un gran número de entradas de caché y el uso de una gran cantidad de memoria.

La mejor solución es deshabilitar UT Discovery. Para ello, siga estos pasos:

1. Diríjase a C:\Program Files\CSCOpx\etc\cwsi\ANIServer.properties.

2. Agregue "UTPingSweep=0".

3. Reinicie ANI.

Esto puede hacer que la tabla de seguimiento de usuarios pierda algunos servidores finales o quede obsoleta (esto puede ser un problema con otra aplicación de Cisco llamada Herramienta de registro de usuarios, que depende de UT), pero no afecta a la Detección de campus que utiliza solamente el tráfico SNMP. La conmutación CEF también puede mejorar esta situación (con CEF, la memoria caché IP se crea a partir de la tabla de ruteo en el inicio). Consulte Cómo Elegir la Mejor Trayectoria de Switching de Router para su Red para obtener más información sobre CEF y otras trayectorias de switching disponibles.

Hay muchas otras aplicaciones que pueden dar lugar a situaciones similares de memoria baja. En la mayoría de los casos, la causa raíz del problema no es el router, sino la propia aplicación. Normalmente, debe poder evitar esas tormentas de paquetes comprobando la configuración de la aplicación.

Memoria compartida insuficiente para las interfaces

Algunos routers (por ejemplo, las series 2600, 3600 y 4000) requieren una cantidad mínima de memoria de E/S para admitir determinados procesadores de interfaz.

Si el router se ejecuta con poca memoria compartida, incluso después de una recarga, puede eliminar físicamente las interfaces para resolver este problema.

En los routers serie 3600, el comando de configuración global  memory-size iomem i/o-memory-percentage se puede utilizar para reasignar el porcentaje de DRAM que se utilizará para la memoria de E/S y la memoria del procesador. Los valores permitidos para i/o-memory-percentage son 10 , 15 , 20 , 25 (el valor predeterminado), 30 , 40 y 50. Se requiere un mínimo de 4 MB de memoria para la memoria de E/S.

Para resolver este problema, consulte:

- Requisitos de memoria compartida para los routers 4000/4500/4700.

Error de fuga en memoria intermedia

Si tiene el resultado de un  show buffers  comando o  show technical-support  (en modo de activación) desde su dispositivo Cisco, puede utilizar Output Interpreter para mostrar posibles problemas y soluciones.

Nota: solo los usuarios registrados de Cisco tienen acceso a la información y las herramientas internas de Cisco.

Cuando un proceso finaliza con un búfer, el proceso debe liberar el búfer. Una fuga de memoria intermedia se produce cuando el código olvida procesar una memoria intermedia o se olvida de liberarla después de que haya terminado con el paquete. Como resultado, el agrupamiento de búferes continúa creciendo a medida que más y más paquetes se atascan en las memorias intermedias. Puede identificar una fuga de búfer con el comando show buffers comando. Algunos de los agrupamientos de búferes públicos deben ser anormalmente grandes con pocos búferes libres. Después de una recarga, puede ver que el número de memorias intermedias libres nunca se acerca al número de memorias intermedias totales.

La herramienta Output Interpreter (Intérprete de salida) le permite recibir un análisis del show buffers resultado.

En el siguiente ejemplo, las memorias intermedias intermedias se ven afectadas.  show buffers  indica que se utilizan casi 8094 memorias intermedias y que no se liberan (8122 en total menos 28 libres):

Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50):

50 in free list (20 min, 150 max allowed)

403134 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Middle buffers, 600 bytes (total 8122, permanent 200):

28 in free list (10 min, 300 max allowed)

154459 hits, 41422 misses, 574 trims, 8496 created

Big buffers, 1524 bytes (total 50, permanent 50):

50 in free list (5 min, 150 max allowed)

58471 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 10, permanent 10):

10 in free list (0 min, 100 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Large buffers, 5024 bytes (total 0, permanent 0)

0 in free list (0 min, 10 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Huge buffers, 18024 bytes (total 0, permanent 0):

0 in free list (0 min, 4 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Este es un bug del software del IOS de Cisco. Actualice a la última versión de su tren de versiones para corregir los errores conocidos de fuga de memoria intermedia (por ejemplo, si está ejecutando la versión 11.2(14) del software del IOS de Cisco, actualice a la última imagen de la versión 11.2(x). Si esto no ayuda, o si no es posible actualizar el router, emita estos siguientes comandos para el conjunto de problemas cuando el router tenga poca memoria. Estos comandos pueden mostrar información adicional sobre el contenido de los buffers:

- show buffer old  muestra búferes asignados con más de un minuto de antigüedad

- show buffer pool   (small - middle - big - verybig - large - huge)    muestra un resumen de las memorias intermedias para el conjunto especificado

- show buffer pool (small - middle - big - verybig - large - huge) dump   muestra un volcado hexadecimal/ASCII de todas las memorias intermedias en uso de un conjunto determinado.

Consulte Troubleshooting de Fugas de Buffer para obtener más detalles.

El router se queda sin memoria rápida

Este problema es específico de la serie 7500. Si el router se queda sin memoria "rápida", puede utilizar su RAM dinámica (DRAM) principal. No se requiere ninguna acción.

IPFAST-4-RADIXDELETE: Error  trying  para eliminar la entrada de prefijo [dirección_IP]/[dec] (se esperaba [hex], se obtuvo [hex])

El mensaje de error IPFAST-4-RADIXDELETE: Error al intentar eliminar la entrada de prefijo [dirección_IP]/[dec] (se esperaba [hex], se obtuvo [hex]) indica que la tabla de memoria caché de Fast Switching del router está dañada. Cuando el router intenta borrar la tabla de caché bajo el proceso normal o el clear ip cache se ingresa, el sistema no puede eliminar las entradas debido a la corrupción de la memoria. Cuando el router no puede eliminar dicha entrada, se informa el mensaje IPFAST-4-RADIXDELETE.

Para resolver un problema de corrupción de la memoria de la tabla de memoria caché, se necesita un reinicio completo del router. Un reinicio puede dividir las estructuras de memoria del sistema de nuevo y permitir que la memoria caché rápida para reconstruir sin corrupción.

%SYS-2-CHUNKEXPANDFAIL: no se pudo expandir el grupo de fragmentos para el mapa de bits TACL. No hay memoria disponible

El motivo de %SYS-2-CHUNKEXPANDFAIL: no se pudo expandir el grupo de fragmentos para el mapa de bits TACL. Ningún mensaje de error de memoria disponible es que no queda suficiente memoria del procesador para aumentar el grupo de fragmentos especificado. Es posible que sea causada por un proceso que se comporta de manera anormal.

La solución alternativa es capturar periódicamente (según la frecuencia del problema) la salida de estos comandos para que se pueda monitorear el uso de memoria del router:

- show processes memory sorted

- show memory statistics

- show memory allocating-process totals

Summary

Fallas de asignación de memoria del procesador de agrupaciones

Siga estos pasos:

1. Verifique los requisitos de memoria para su versión de software del IOS de Cisco o conjunto de funciones.

2. Si es posible, actualice a la última versión de software del IOS de Cisco en su tren de versiones.

3. Compruebe si hay una gran cantidad de memoria utilizada para procesos normales o anormales. Si es necesario, agregue más memoria .

4. Compruebe si se trata de una fuga o fragmentación (fuga de búfer en routers de gama alta).

5. Recopile la información pertinente y póngase en contacto con el TAC.

Agrupar fallas de asignación de memoria de "I/O" ("Procesador" en routers de mayor capacidad, "PCI" en la serie 7200)

Siga estos pasos:

1. Compruebe los requisitos de memoria compartida (consulte Memoria compartida insuficiente para las interfaces).

2. Si es posible, actualice a la versión más reciente del software Cisco IOS en su tren de versiones.

3. Determine qué conjunto de búferes se ve afectado, recopile la información pertinente y póngase en contacto con el TAC de Cisco.

Información Relacionada

- Solucionar problemas de fugas de búfer

- Resolución de problemas de bloqueo de router

- Asistencia técnica y descargas de Cisco