Introduction
No Aggregation Services Router 9000 (ASR9K) executando Enhanced XR (eXR), também conhecido como 64-bit XR, release 6.2.1 e mais recente, o comando "show memory summary" não mostra toda a memória interna documentada no Data Sheet correspondente, o que pode confundir alguns clientes.
Detalhes do problema
Abaixo, usaremos um ASR9901, executando 6.4.2, como exemplo.
De acordo com a ficha técnica, o processador de rota integrado (RP) tem 32 gigabytes (GB) de memória de acesso aleatório (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
"Show memory summary" mostra apenas cerca de 27GB, apesar do sistema reconhecer a memória total como 32GB em "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>
O mesmo comportamento pode ser observado em outros dispositivos ASR9K, por exemplo: ASR9010 com eXR 6.2.3
Olhando para a ficha técnica, A9K-RSP880-TR deve ter 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
"Show memory summary" mostra 12,5 GB e "admin show system resource mostra 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
No entanto, se verificarmos o XR de 32 bits, ele mostrará a memória física total conforme documentado na folha de dados:
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álise
A partir da versão 6.2.1, o eXR no ASR9K usará o modelo de virtualização Virtual Machine (VM), alternando a partir do modelo Linux Container (LXC), que foi usado nas versões 6.1.2 e 6.1.3.
Os contêineres podem compactar muito mais aplicativos em um único servidor físico do que uma máquina virtual (VM).
As VMs podem consumir muitos recursos do sistema. Cada VM executa não apenas uma cópia completa de um sistema operacional, mas uma cópia virtual de todo o hardware que o sistema operacional (SO) precisa executar. Isso pode aumentar muito a memória e os ciclos da CPU. Em contraste, tudo o que um contêiner requer é um sistema operacional suficiente, programas de suporte e bibliotecas, e recursos do sistema para executar um programa específico. No entanto, as VMs oferecem muito mais flexibilidade para acomodar funções como In-Service Software Upgrade (ISSU).
Como os contêineres Linux compartilham os recursos físicos e o kernel do host, enquanto cada VM requer seu próprio SO e hardware virtualizado, isso explicaria por que cada VM recebe uma quantidade específica de recursos do host geral, o que resulta na exibição do resumo da memória que não exibe a memória física total geral nas versões 6.2.1 e posteriores do eXR. Os recipientes do Linux também podem ter limite para memória alocada, conforme aparece nas plataformas NCS5000 e NCS5500, e os mesmos comportamentos da CLI 'show memory summary' serão observados nessas plataformas.