Einleitung
Auf dem Aggregation Services Router 9000 (ASR9K) mit Enhanced XR (eXR), auch bekannt als 64-Bit-XR, Version 6.2.1 und höher, zeigt der Befehl "show memory summary" nicht den gesamten im entsprechenden Datenblatt dokumentierten internen Speicher an. Dies kann einige Kunden verwirren.
Problemdetails
Im Folgenden wird ein ASR9901 mit der Version 6.4.2 als Beispiel verwendet.
Laut Datenblatt verfügt der integrierte Routingprozessor (RP) über 32 GB RAM (Random Access Memory).
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
Bei "Speicherübersicht anzeigen" werden nur ca. 27 GB angezeigt, obwohl das System den Gesamtspeicher unter "Admin show system resources" als 32 GB erkennt.
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>
Dasselbe Verhalten kann auch auf anderen ASR9K-Geräten beobachtet werden, z. B.: ASR9010 mit eXR 6.2.3
Das Datenblatt A9K-RSP880-TR sollte 16 GB RAM haben.
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
"Zusammenfassung des Speichers anzeigen" zeigt 12,5 GB und "Administrator zeigt Systemressourcen 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
Wenn wir jedoch 32-Bit-XR überprüfen, wird der gesamte physische Speicher angezeigt, wie im Datenblatt dokumentiert:
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
Ab Version 6.2.1 verwendet eXR auf ASR9K das Virtualisierungsmodell für virtuelle Maschinen (VM), wobei das Linux Container (LXC)-Modell verwendet wird, das in den Versionen 6.1.2 und 6.1.3 verwendet wurde.
Container können viel mehr Anwendungen in einen einzigen physischen Server packen als virtuelle Systeme.
VM's können eine Menge Systemressourcen beanspruchen. Auf jeder VM wird nicht nur eine vollständige Kopie eines Betriebssystems ausgeführt, sondern eine virtuelle Kopie der gesamten Hardware, die das Betriebssystem ausführen muss. Dies kann zu einer großen Menge an Arbeitsspeicher und CPU-Zyklen führen. Im Gegensatz dazu reicht alles, was ein Container benötigt, aus einem Betriebssystem, unterstützenden Programmen und Bibliotheken und Systemressourcen, um ein bestimmtes Programm auszuführen. VMs bieten jedoch eine wesentlich größere Flexibilität, um Funktionen wie In-Service-Software-Upgrades (ISSU) zu unterstützen.
Da Linux-Container die physischen Ressourcen und den Kernel des Hosts gemeinsam nutzen, während jede VM ihr eigenes Betriebssystem und ihre virtualisierte Hardware benötigt, würde dies erklären, warum jeder VM eine bestimmte Anzahl von Ressourcen vom gesamten Host zugewiesen wird. Dies führt dazu, dass in der Zusammenfassung des Arbeitsspeichers nicht der gesamte physische Arbeitsspeicher von eXR 6.2.1 und höher angezeigt wird. Linux Conainer können auch eine Beschränkung für zugewiesenen Speicher aufweisen, wie sie auf NCS5000- und NCS5500-Plattformen angezeigt wird, und dasselbe Verhalten wird für die CLI "show memory summary" auf diesen Plattformen beobachtet.