¿Tiene una cuenta?
Este documento discute los errores MALLOCFAIL en el ® nativo del Cisco IOS, así como los pasos para tomar e información a recolectar antes de que usted abra un caso del Centro de Asistencia Técnica de Cisco (TAC) o recargue el dispositivo para apresurar la solución de problemas. Este documento no es exhaustivo, sino proporciona las Pautas generales usadas para resolver problemas los problemas de la memoria con mucho Routers y Switches.
Los problemas de memoria se manifiestan de varias maneras en el Switches y el Routers. En muchos casos, se recarga un dispositivo que experimenta los errores de memoria antes de que se recopilen los datos apropiados.
Los problemas de la memoria aparecen generalmente bajo la forma de errores MALLOCFAIL en los registros de su router o Switch. Estos errores son importantes porque proporcionan las “señales de tráfico” de dirigir la investigación. Aquí está un error MALLOCFAIL de la muestra:
%SYS-2-MALLOCFAIL: Memory allocation of 65536 bytes failed
from 0x60103098,
alignment 0
Pool: Processor Free: 5453728 Cause: Memory fragmentation
Alternate Pool: None Free: 0 Cause: No Alternate pool
La primera cosa a notar es cuánto necesita la memoria usted afectar un aparato y cuánta memoria libre usted tiene. Este ejemplo muestra que un escenario donde usted debe afectar un aparato 65KB de un pool que tenga solamente aproximadamente 5.45MB libera. La salida indica que, aunque hay memoria libre suficiente, el bloque contiguo más grande es más pequeño que 65KB, y la asignación de memoria fallada. Mientras que, por definición, esto se considera fragmentación de la memoria, ésta no es generalmente la causa. Lo más a menudo posible, es causada simplemente por memoria baja en el pool sí mismo.
La segunda cosa a notar es el tipo del pool. El ejemplo del prevoius ocupado del agrupamiento de procesador. Esto es importante porque es la primera señal de tráfico que dirige la investigación y qué necesidades de ser marcado. El pool especificado debe ser procesador o entrada-salida. Aquí está un ejemplo memoria de I/O de un error:
%SYS-2-MALLOCFAIL: Memory allocation of 65548 bytes failed from 0x400B8564,
alignment 32
Pool: I/O Free: 39696 Cause: Not enough free memory
Alternate Pool: None Free: 0 Cause: No Alternate pool
Las siguientes secciones detallan a estos pools más lejos. El pool se identifica una vez, usted puede enfocar sus esfuerzos por consiguiente en los puntos derechos.
Utilizan al agrupamiento de procesador, mientras que el nombre implica, para los diversos procesos que se ejecutan en el router o el Switch. Hay los procesos específicos que son la base de la mayoría de las versiones deL Cisco IOS y de las Plataformas que utilicen la memoria. Por ejemplo, el init es un proceso establecido en el arranque inicial de la mayoría de los dispositivos, y está presente a través de las diversas Plataformas. Otros procesos que pudieron ser presente se basan en la configuración del dispositivo individual. Por ejemplo, en las Plataformas en las cuales exprese se configura y los procesos usados, Voz-específicos consumen la memoria, mientras que en configuraciones generalizadas sin la Voz, estos procesos no celebran tanto, o cualquier memoria en absoluto.
Ciertos procesos celebran más memoria que otras. Si hay preguntas o preocupaciones por un proceso determinado, es el mejor abrir un caso TAC para hacerlo investigar.
Cisco 2821 (revision 53.51) with 210944K/51200K bytes of memory.
show clock
show mem stat
show proc mem sorted
show mem all totals
show log
show proc mem <PID #>
show mem dead totals
show mem dead
El pool entrada-salida refiere a los buffers entrada-salida vistos con el comando show buffers. Estos buffers se utilizan para el tráfico process-switched, entre otras cosas, por ejemplo las actualizaciones de ruteo o los broadcasts. Memoria de I/O se analiza en los pools, que se muestran en la salida del comando show buffers. Basan a estos pools en el tamaño de paquetes, que permite la asignación más eficiente de la memoria basada en las necesidades.
--------- show buffers --------
Buffer elements:
500 in free list (500 max allowed)
3220350364 hits, 0 misses, 0 created
Public buffer pools:
Small buffers, 104 bytes (total 6144, permanent 6144):
3867 in free list (2048 min, 8192 max allowed)
248913132 hits, 0 misses, 0 trims, 0 created
0 failures (0 no memory)
Medium buffers, 256 bytes (total 86401, permanent 3000, peak 86401 @ 05:18:11):
0 in free list (64 min, 3000 max allowed)
9697361 hits, 203293 misses, 2208 trims, 85609 created
167633 failures (651288 no memory)
Middle buffers, 600 bytes (total 512, permanent 512):
0 in free list (64 min, 1024 max allowed)
9284431 hits, 237750 misses, 0 trims, 0 created
224619 failures (680486 no memory)
Big buffers, 1536 bytes (total 1000, permanent 1000):
0 in free list (64 min, 1000 max allowed)
69471745 hits, 895218 misses, 0 trims, 0 created
842142 failures (1821074 no memory)
VeryBig buffers, 4520 bytes (total 10, permanent 10, peak 122 @ 1w3d):
0 in free list (0 min, 100 max allowed)
2120517 hits, 1632477 misses, 112 trims, 112 created
1632421 failures (3272987 no memory)
Large buffers, 9240 bytes (total 8, permanent 8, peak 18 @ 1w3d):
0 in free list (0 min, 10 max allowed)
9593 hits, 832217 misses, 44 trims, 44 created
832195 failures (1651309 no memory)
Huge buffers, 18024 bytes (total 2, permanent 2):
0 in free list (0 min, 4 max allowed)
1325 hits, 831497 misses, 0 trims, 0 created
831494 failures (1649904 no memory)
show clock
show mem stat
show buffers
show log
show buffer pool <pool name> packet
En la mayoría del Routers, los ejemplos del error MALLOCFAIL presentados previamente son estándar. En los Cisco Catalyst 6500 Series Switch y los 7600 Series Router con los motores del supervisor (SUP) o el Route Switch Processor (RSP), estos errores pudieron variar. Por ejemplo, este error fue tomado del Route Processor que el (RP) abre una sesión un 6500 Series Switch:
%SYS-SP-2-MALLOCFAIL: Memory allocation of 820 bytes failed from 0x40C83B60,
alignment 32
Pool: I/O Free: 48 Cause: Not enough free memory
Alternate Pool: None Free: 0 Cause: No Alternate pool
El error MALLOCFAIL muestra que el switch processor (SP) del SUP señala el problema, no el RP. Si el problema se asocia al RP, la designación SP en el error no está presente. Por este motivo, las salidas anteriores se deben tomar del SP. Para lograr esto, preceda los comandos con:
remote command switch
El mensaje de error pudo también referir al SUP/RSP espera RP o SP según lo denotado por STDBY, y a las necesidades de ser recogido por consiguiente.
Usted puede ser que acelere la resolución del caso y traiga la estabilidad a su dispositivo más rápidamente si usted recoge las salidas enumeradas en este documento. Si se presentan algunas preguntas o si hay incertidumbre sobre el funcionamiento de la memoria en un dispositivo, es el mejor abrir un caso TAC para hacerlo investigar.