Introduction
Sur le routeur de services d'agrégation 9000 (ASR9K) exécutant Enhanced XR (eXR), également connu sous le nom de 64 bits XR, version 6.2.1 et ultérieure, la commande « show memory summary » n'affiche pas toute la mémoire interne documentée sur la fiche technique correspondante, ce qui peut perturber certains clients.
Détails du problème
Ci-dessous, nous utiliserons un ASR9901, exécutant 6.4.2, comme exemple.
Selon la fiche technique, le processeur de routage intégré (RP) dispose de 32 gigaoctets (Go) de mémoire vive (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 » n'affiche qu'environ 27 Go, bien que le système reconnaisse que la mémoire totale est de 32 Go sous « 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>
Le même comportement peut être observé sur d'autres périphériques ASR9K, par exemple : ASR9010 avec eXR 6.2.3
En regardant la fiche technique, le A9K-RSP880-TR doit disposer de 16 Go 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 » indique 12,5 Go et « admin show system resource » indique 16 Go
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
Cependant, si nous vérifions le XR 32 bits, il montre la mémoire physique totale comme documenté dans la fiche technique :
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
Analyse
À partir de la version 6.2.1, eXR sur ASR9K utilisera le modèle de virtualisation de machine virtuelle (VM), en passant du modèle de conteneur Linux (LXC) utilisé dans les versions 6.1.2 et 6.1.3.
Les conteneurs peuvent stocker beaucoup plus d'applications dans un seul serveur physique qu'une machine virtuelle (VM).
Les machines virtuelles peuvent occuper un grand nombre de ressources système. Chaque machine virtuelle exécute non seulement une copie complète d'un système d'exploitation, mais également une copie virtuelle de tout le matériel que le système d'exploitation doit exécuter. Cela peut augmenter le nombre de cycles de mémoire et de CPU. En revanche, un conteneur ne nécessite qu'un système d'exploitation, des programmes et bibliothèques de prise en charge et des ressources système suffisants pour exécuter un programme spécifique. Cependant, les machines virtuelles offrent beaucoup plus de flexibilité pour prendre en charge des fonctions telles que In-Service Software Upgrade (ISSU).
Étant donné que les conteneurs Linux partagent les ressources physiques et le noyau de l'hôte, alors que chaque machine virtuelle nécessite son propre système d'exploitation et son propre matériel virtualisé, cela expliquerait pourquoi chaque machine virtuelle se voit attribuer une quantité spécifique de ressources de l'hôte global, ce qui a pour conséquence que le résumé show memory n'affiche pas la mémoire physique totale sur les versions eXR 6.2.1 et ultérieures. Les conteneurs Linux peuvent également avoir une limite pour la mémoire allouée telle qu'elle apparaît sur les plates-formes NCS5000 et NCS5500 et les mêmes comportements pour la CLI « show memory summary » seront observés sur ces plates-formes.