Este documento describe cómo verificar la memoria del sistema y resolver problemas relacionados con la memoria en los routers de servicios de agregación de la serie ASR 1000 de Cisco (ASR1K).
Cisco recomienda que tenga conocimientos básicos sobre estos temas:
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Con la mayoría de las plataformas de router basadas en software, la mayoría de los procesos de software internos se ejecutan dentro de la memoria Cisco IOS®. La plataforma ASR1K presenta una arquitectura de software distribuida que elimina muchas responsabilidades del sistema operativo del proceso IOS. El IOS en esta arquitectura, que anteriormente era responsable de casi todas las operaciones internas, ahora se ejecuta como uno de muchos procesos Linux. Esto permite que otros procesos Linux compartan la responsabilidad por el funcionamiento del router.
ASR1K ejecuta IOS-XE, no el IOS tradicional. En IOS-XE, un componente Linux ejecuta el núcleo y el IOS se ejecuta como un demonio, que en lo sucesivo se denomina IOSd (IOS-Daemon). Esto crea un requisito para que la memoria se divida entre el kernel de Linux y la instancia de IOSd.
La memoria que se divide entre IOSd y el resto del sistema se fija al inicio y no se puede modificar. Para un sistema de 4 GB, IOSd se asigna aproximadamente 2 GB y para un sistema de 8 GB, el IOSd se asigna aproximadamente 4 GB (con redundancia de software desactivada).
Dado que el ASR1K tiene una arquitectura de 64 bits, cualquier puntero que se encuentre en cada estructura de datos del sistema consume el doble de memoria en comparación con las plataformas de una sola CPU tradicionales (8 bytes en lugar de 4 bytes). El direccionamiento de 64 bits permite al IOS superar la limitación de memoria direccionable de 2 GB del IOS, lo que le permite ampliarse a millones de rutas.
El conjunto de memoria de la interfaz de punto de memoria compartida de Linux (LSMPI) se utiliza para transferir paquetes del procesador de reenvío al procesador de routing. Este conjunto de memoria se divide en la inicialización del router en memorias intermedias preasignadas, a diferencia del grupo de procesadores, donde IOS-XE asigna bloques de memoria dinámicamente. En la plataforma ASR1K, el conjunto lsmpi_io tiene poca memoria libre â generalmente menos de 1000 bytes â lo que es normal. Cisco recomienda que deshabilite la supervisión del grupo de la LSMPI de las aplicaciones de administración de redes para evitar falsas alarmas.
ASR1000# show memory statistics
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 2C073008 1820510884 173985240 1646525644 1614827804 1646234064
lsmpi_io 996481D0 6295088 6294120 968 968 968
Si hay algún problema en la trayectoria de LSMPI, el contador Error al salir del dispositivo parece aumentar en este resultado del comando (se omitió algún resultado):
ASR1000-1# show platform software infrastructure lsmpi driver
LSMPI Driver stat ver: 3
Packets:
In: 674572
Out: 259861
Rings:
RX: 2047 free 0 in-use 2048 total
TX: 2047 free 0 in-use 2048 total
RXDONE: 2047 free 0 in-use 2048 total
TXDONE: 2047 free 0 in-use 2048 total
Buffers:
RX: 7721 free 473 in-use 8194 total
Reason for RX drops (sticky):
Ring full : 0
Ring put failed : 0
No free buffer : 0
Receive failed : 0
Packet too large : 0
Other inst buf : 0
Consecutive SOPs : 0
No SOP or EOP : 0
EOP but no SOP : 0
Particle overrun : 0
Bad particle ins : 0
Bad buf cond : 0
DS rd req failed : 0
HT rd req failed : 0
Reason for TX drops (sticky):
Bad packet len : 0
Bad buf len : 0
Bad ifindex : 0
No device : 0
No skbuff : 0
Device xmit fail : 0
Device xmit rtry : 0
Tx Done ringfull : 0
Bad u->k xlation : 0
No extra skbuff : 0
<snip>
ASR1K incluye estos elementos funcionales en su sistema:
Como tal, se requiere monitorear la utilización de la memoria por cada uno de estos procesadores en un entorno de producción.
Los procesadores de control ejecutan el software Cisco IOS-XE que consta de un núcleo basado en Linux y un conjunto común de programas de utilidad de nivel OS, que incluye Cisco IOS que se ejecuta como proceso de usuario en la tarjeta RP.
Ingrese el comando show platform software status control-processor brief para monitorear el uso de memoria en el RP, ESP y el SIP. El estado del sistema debe ser idéntico en lo que respecta a aspectos como la configuración de la función y el tráfico, mientras que se compara el uso de la memoria.
ASR1K# show platform software status control-processor brief
<snip>
Memory (kB)
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
RP0 Healthy 3907744 1835628 (47%) 2072116 (53%) 2614788 (67%)
ESP0 Healthy 2042668 789764 (39%) 1252904 (61%) 3108376 (152%)
SIP0 Healthy 482544 341004 (71%) 141540 (29%) 367956 (76%)
SIP1 Healthy 482544 315484 (65%) 167060 (35%) 312216 (65%)
Cada procesador enumerado en la salida anterior podría informar del estado como Sano, Advertencia o Crítico, que depende de la cantidad de memoria libre. Si alguno de los procesadores muestra el estado como Advertencia o Crítico, ingrese el comando monitor platform software process<slot> para identificar al colaborador principal.
ASR1K# monitor platform software process ?
0 SPA-Inter-Processor slot 0
1 SPA-Inter-Processor slot 1
F0 Embedded-Service-Processor slot 0
F1 Embedded-Service-Processor slot 1
FP Embedded-Service-Processor
R0 Route-Processor slot 0
R1 Route-Processor slot 1
RP Route-Processor
<cr>
Puede que se le pida que configure el terminal-type antes de ejecutar el comando monitor platform software process:
ASR1K# monitor platform software process r0
Terminal type 'network' unsupported for command
Change the terminal type with the 'terminal terminal-type' command.
El tipo de terminal se establece en red de forma predeterminada. Para configurar el tipo de terminal apropiado, ingrese el comando terminal-type:
ASR1K#terminal-type vt100
Una vez configurado el tipo de terminal correcto, puede ingresar el comando monitor platform software process (se omitió alguna salida):
ASR1000# monitor platform software process r0
top - 00:34:59 up 5:02, 0 users, load average: 2.43, 1.52, 0.73
Tasks: 136 total, 4 running, 132 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.8%us, 2.3%sy, 0.0%ni, 96.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2009852k total, 1811024k used, 198828k free, 135976k buffers
Swap: 0k total, 0k used, 0k free, 1133544k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25956 root 20 0 928m 441m 152m R 1.2 22.5 4:21.32 linux_iosd-imag
29074 root 20 0 106m 95m 6388 S 0.0 4.9 0:14.86 smand
24027 root 20 0 114m 61m 55m S 0.0 3.1 0:05.07 fman_rp
25227 root 20 0 27096 13m 12m S 0.0 0.7 0:04.35 imand
23174 root 20 0 33760 11m 9152 S 1.0 0.6 1:58.00 cmand
23489 root 20 0 23988 7372 4952 S 0.2 0.4 0:05.28 emd
24755 root 20 0 19708 6820 4472 S 1.0 0.3 3:39.33 hman
28475 root 20 0 20460 6448 4792 S 0.0 0.3 0:00.26 psd
27957 root 20 0 16688 5668 3300 S 0.0 0.3 0:00.18 plogd
14572 root 20 0 4576 2932 1308 S 0.0 0.1 0:02.37 reflector.sh
<snip>
Si observa que el proceso linux_iosd-imag contiene una cantidad inusualmente grande de memoria en el resultado del comando monitor platform software process rp active, centre sus esfuerzos de resolución de problemas en la instancia de IOSd. Es probable que un proceso específico en el subproceso IOSd no libere la memoria. Solucione los problemas relacionados con la memoria en la instancia del IOSd de la misma manera que resuelve cualquier problema de las plataformas de reenvío basadas en software, como las series 2800, 3800 o 3900 de Cisco.
ASR1K# monitor platform software process rp active
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25794 root 20 0 2929m 1.9g 155m R 99.9 38.9 1415:11 linux_iosd-imag
23038 root 20 0 33848 13m 10m S 5.9 0.4 30:53.87 cmand
9599 root 20 0 2648 1152 884 R 2.0 0.0 0:00.01 top
<snip>
Ingrese el comando show process memory sort para identificar el proceso del problema:
ASR1000# show process memory sorted
Processor Pool Total: 1733568032 Used: 1261854564 Free: 471713468
lsmpi_io Pool Total: 6295088 Used: 6294116 Free: 972
PID TTY Allocated Freed Holding Getbufs Retbufs Process
522 0 1587708188 803356800 724777608 54432 0 BGP Router
234 0 3834576340 2644349464 232401568 286163388 15876 IP RIB Update
0 0 263244344 36307492 215384208 0 0 *Init
La clasificación del tráfico es una de las funciones más básicas que se encuentran en routers y switches. Muchas aplicaciones y funciones requieren que los dispositivos de infraestructura ofrezcan estos servicios diferenciados para diferentes usuarios en función de los requisitos de calidad. El proceso de clasificación del tráfico debe ser rápido, de modo que el rendimiento del dispositivo no se degrade en gran medida. La plataforma ASR1K utiliza la 4ª generación de Memoria direccionable de contenido ternario (TCAM4) para este fin.
Para determinar el número total de celdas TCAM disponibles en la plataforma y el número de entradas libres que permanecen, ingrese este comando:
ASR1000# show platform hardware qfp active tcam resource-manager usage
Total TCAM Cell Usage Information
----------------------------------
Name : TCAM #0 on CPP #0
Total number of regions : 3
Total tcam used cell entries : 65528
Total tcam free cell entries : 30422
Threshold status : below critical limit
Si el procesador de reenvío se ejecuta críticamente bajo en celdas TCAM libres, ESP podría generar registros similares a los que se muestran a continuación y podría producirse un desperfecto. Si no hay redundancia, esto da como resultado una interrupción del tráfico.
%CPPTCAMRM-6-TCAM_RSRC_ERR: SIP0: cpp_sp: Allocation failed because of insufficient
TCAM resources in the system.
%CPPOSLIB-3-ERROR_NOTIFY: SIP0: cpp_sp:cpp_sp encountered an error -
Traceback=1#s7f63914d8ef12b8456826243f3b60d7 errmsg:7EFFC525C000+1175
Además de la memoria física, también hay memoria conectada al ASIC de procesador de flujo Quantum (QFP) que se utiliza para reenviar estructuras de datos, que incluye datos como la base de información de reenvío (FIB) y políticas de QoS. La cantidad de DRAM disponible para el ASIC QFP es fija, con rangos de 256 MB, 512 MB y 1 GB, dependiendo del módulo ESP.
Ingrese el comando show platform hardware qfp active infrastructure exmem statistics para determinar el uso de la memoria exmem. La suma de la memoria para la IRAM y la DRAM que se utiliza proporciona la memoria QFP total que está en uso.
BGL.I.05-ASR1000-1# show platform hardware qfp active infra exmem statistics user
Type: Name: IRAM, CPP: 0
Allocations Bytes-Alloc Bytes-Total User-Name
------------------------------------------------------
1 115200 115712 CPP_FIA
Type: Name: DRAM, CPP: 0
Allocations Bytes-Alloc Bytes-Total User-Name
-----------------------------------------------------
4 1344 4096 P/I
9 270600 276480 CEF
1 1138256 1138688 QM RM
1 4194304 4194304 TCAM
1 65536 65536 Qm 16
La IRAM es la memoria de instrucciones para el software QFP. En caso de agotamiento de la DRAM, se puede utilizar la IRAM disponible. Si la IRAM se ejecuta críticamente en memoria baja, es posible que vea este mensaje de error:
%QFPOOR-4-LOWRSRC_PERCENT: F1: cpp_ha: QFP 0 IRAM resource low - 97 percent depleted
%QFPOOR-4-LOWRSRC_PERCENT: F1: cpp_ha: QFP 0 IRAM resource low - 98 percent depleted
Para determinar el proceso que consume la mayor parte de la memoria, ingrese el comando show platform hardware qfp active infra exmem statistics user:
ASR1000# show platform hardware qfp active infra exmem statistics user
Type: Name: IRAM, CPP: 0
Allocations Bytes-Alloc Bytes-Total User-Name
----------------------------------------------------
1 115200 115712 CPP_FIA
Type: Name: DRAM, CPP: 0
Allocations Bytes-Alloc Bytes-Total User-Name
----------------------------------------------------
4 1344 4096 P/I
9 270600 276480 CEF
1 1138256 1138688 QM RM
1 4194304 4194304 TCAM
1 65536 65536 Qm 16
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
19-Nov-2013 |
Versión inicial |