Introducción
En el router de servicios de agregación 9000 (ASR9K) que ejecuta XR mejorado (eXR), también conocido como XR de 64 bits, versión 6.2.1 y posterior, el comando "show memory summary" no muestra toda la memoria interna documentada en la hoja de datos correspondiente, lo que podría confundir a algunos clientes.
Detalles del problema
A continuación, utilizaremos un ASR9901, que ejecuta 6.4.2, como ejemplo.
Según la hoja de datos, el Procesador de ruta integrado (RP) tiene 32 GigaBytes (GB) de Memoria de acceso aleatorio (RAM).
RP/0/RSP0/CPU0:R1#show platform
Node Type State Config state
--------------------------------------------------------------------------------
0/RSP0/CPU0 ASR9901-RP(Active) IOS XR RUN NSHUT
0/FT0 ASR-9901-FAN OPERATIONAL NSHUT
0/FT1 ASR-9901-FAN OPERATIONAL NSHUT
0/FT2 ASR-9901-FAN OPERATIONAL NSHUT
0/0/CPU0 ASR9901-LC IOS XR RUN NSHUT
"Mostrar resumen de memoria" sólo muestra unos 27 GB, a pesar de que el sistema reconoce la memoria total como 32 GB en "admin show system resources".
RP/0/RSP0/CPU0:R1#show memory summary
node: node0_RSP0_CPU0
------------------------------------------------------------------
Physical Memory: 27089M total (22185M available)
Application Memory : 27089M (22013M available)
Image: 4M (bootram: 0M)
Reserved: 0M, IOMem: 0M, flashfsys: 0M
Total shared window: 133M
RP/0/RSP0/CPU0:R1#admin show system resources
Node Physical Application Boot Partition CPUs Shmwin
Total Available Cached Total Available Cached Total Available
0/RSP0-Host 32415M^ 512M^ 135M 31655M^ 500M^ 132 923M 542M 4 N/A
0/RSP0-Admin 1940M 1072M 144M 1894M 1047M 141 2308M 1252M 1 N/A
0/RSP0-XR 27739M 22548M 999M 27089M 22020M 975 N/A N/A 2 6655M
<snip>
Se puede observar el mismo comportamiento en otros dispositivos ASR9K, por ejemplo: ASR9010 con eXR 6.2.3
Si observa la hoja de datos A9K-RSP880-TR debe tener 16 GB de RAM.
RP/0/RSP0/CPU0:R2#show platform
Node Type State Config state
-------------------------------------------------------------------------------
0/RSP0/CPU0 A9K-RSP880-TR(Active) IOS XR RUN NSHUT
0/FT0 ASR-9010-FAN-V2 OPERATIONAL NSHUT
0/FT1 ASR-9010-FAN-V2 OPERATIONAL NSHUT
0/1/CPU0 A9K-MOD400-TR IOS XR RUN NSHUT
0/1/0 A9K-MPA-20X10GE OK
0/1/1 A9K-MPA-1X100GE OK
0/PT0 A9K-AC-PEM-V3 OPERATIONAL NSHUT
0/PT1 A9K-AC-PEM-V3 OPERATIONAL NSHUT
"Mostrar resumen de memoria" muestra 12,5 GB y "admin show system resource muestra 16 GB
RP/0/RSP0/CPU0:R2#show memory summary
node: node0_RSP0_CPU0
------------------------------------------------------------------
Physical Memory: 12496M total (8465M available)
Application Memory : 12496M (8287M available)
Image: 4M (bootram: 0M)
Reserved: 0M, IOMem: 0M, flashfsys: 0M
Total shared window: 128M
RP/0/RSP0/CPU0:R2#admin show system resou
Node Physical Application Boot Partition CPUs Shmwin
Total Available Cached Total Available Cached Total Available
0/RSP0-Host 16217M^ 276M^ 29M 15837M^ 271M^ 28 923M 592M 8 N/A
0/RSP0-Admin 1940M 1158M 78M 1894M 1131M 76 2308M 1451M 1 N/A
0/RSP0-XR 12796M 8488M 888M 12496M 8288M 867 N/A N/A 6 3071M
0/1-Host 24491M 11510M 127M 23917M 11241M 124 923M 592M 6 N/A
0/1-Admin 1008M 471M 90M 984M 460M 88 2308M 1528M 1 N/A
0/1-XR 10948M 5902M 2343M 10691M 5764M 2288 N/A N/A 5 3071M
Sin embargo, si verificamos el XR de 32 bits, muestra la memoria física total tal como se documenta en la hoja de datos:
RP/0/RSP0/CPU0:R3#show memory summary
Physical Memory: 16384M total (12600M available)
Application Memory : 16043M (12600M available)
Image: 100M (bootram: 100M)
Reserved: 224M, IOMem: 0, flashfsys: 0
Total shared window: 51M
RP/0/RSP0/CPU0:R3#show platform
Node Type State Config State
-----------------------------------------------------------------------------
0/RSP0/CPU0 A99-RSP-TR(Active) IOS XR RUN PWR,NSHUT,MON
0/RSP1/CPU0 A99-RSP-TR(Standby) IOS XR RUN PWR,NSHUT,MON
0/1/CPU0 A9K-MOD400-SE IOS XR RUN PWR,NSHUT,MON
0/1/0 A9K-MPA-20X10GE OK PWR,NSHUT,MON
0/1/1 A9K-MPA-2X100GE OK PWR,NSHUT,MON
0/2/CPU0 A99-8X100GE-SE IOS XR RUN PWR,NSHUT,MON
0/4/CPU0 A9K-MOD400-TR IOS XR RUN PWR,NSHUT,MON
0/4/0 A9K-MPA-8X10GE OK PWR,NSHUT,MON
0/4/1 A9K-MPA-2X40GE OK PWR,NSHUT,MON
Análisis
A partir de la versión 6.2.1 en adelante, eXR en ASR9K utilizará el modelo de virtualización de Máquina virtual (VM), pasando de utilizar el modelo Linux Container (LXC) que se utilizó en las versiones 6.1.2 y 6.1.3.
Los contenedores pueden empaquetar muchas más aplicaciones en un único servidor físico que una máquina virtual (VM).
Las máquinas virtuales pueden utilizar muchos recursos del sistema. Cada VM no solo ejecuta una copia completa de un sistema operativo, sino una copia virtual de todo el hardware que el sistema operativo (SO) necesita ejecutar. Esto puede añadir muchos ciclos de memoria y CPU. Por el contrario, todo lo que requiere un contenedor es suficiente con un sistema operativo, programas y bibliotecas compatibles y recursos del sistema para ejecutar un programa específico. Sin embargo, las VM ofrecen mucha más flexibilidad para adaptarse a funciones como la actualización de software en funcionamiento (ISSU).
Dado que Linux Containers comparte los recursos físicos y el kernel del host, mientras que cada VM requiere su propio SO y hardware virtualizado, esto explicaría por qué a cada VM se le asigna una cantidad específica de recursos del host general, lo que hace que el resumen show memory no muestre la memoria física total en las versiones 6.2.1 y posteriores de eXR. Los contenedores de Linux también pueden tener un límite para la memoria asignada, tal como aparece en las plataformas NCS5000 y NCS5500, y se observarán los mismos comportamientos para la CLI "show memory summary" en estas plataformas.