소개
64비트 XR, 릴리스 6.2.1 이상이라고도 하는 eXR(eXR)을 실행하는 Aggregation Services Router 9000(ASR9K)에서 "show memory summary" 명령은 해당 Data Sheet에 문서화된 모든 내부 메모리를 표시하지 않으므로 일부 고객은 혼란을 겪을 수 있습니다.
문제 세부 정보
아래에서는 6.4.2를 실행하는 ASR9901을 예로 들어 보겠습니다.
데이터시트에 따르면 RP(Integrated Route Processor)는 32GB(GigaBytes)의 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
시스템이 "admin show system resources" 아래에서 총 메모리를 32GB로 인식하지만 "show memory summary"에는 약 27GB만 표시됩니다.
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>
다른 ASR9K 디바이스에서도 동일한 동작을 관찰할 수 있습니다(예: eXR 6.2.3의 ASR9010)
데이터시트를 보면 A9K-RSP880-TR은 16GB의 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(메모리 요약 표시)"는 12.5GB를, "admin show system resource(시스템 리소스 표시)"는 16GB를 보여줍니다.
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
그러나 32비트 XR를 선택하면 데이터시트에 설명된 대로 총 물리적 메모리가 표시됩니다.
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
분석
릴리스 6.2.1 이후부터는 eXR on ASR9K에서 VM(Virtual Machine) 가상화 모델을 사용하며, 릴리스 6.1.2 및 6.1.3에서 사용된 LXC(Linux Container) 모델을 사용합니다.
컨테이너는 VM(가상 머신)보다 훨씬 많은 애플리케이션을 단일 물리적 서버에 압축할 수 있습니다.
VM이 많은 시스템 리소스를 차지할 수 있습니다. 각 VM은 운영 체제의 전체 복사본뿐 아니라 운영 체제(OS)에서 실행해야 하는 모든 하드웨어의 가상 복사본도 실행합니다. 이로 인해 많은 메모리와 CPU 사이클이 추가될 수 있습니다. 반면, 컨테이너에 필요한 것은 특정 프로그램을 실행하기 위한 운영 체제, 지원 프로그램 및 라이브러리, 시스템 리소스만으로 충분합니다. 그러나 VM은 ISSU(In-Service Software Upgrade)와 같은 기능을 수용할 수 있는 더 많은 유연성을 제공합니다.
Linux 컨테이너는 호스트의 물리적 리소스와 커널을 공유하는 반면 각 VM에는 고유한 OS 및 가상 하드웨어가 필요하므로, 이렇게 하면 전체 호스트에서 각 VM에 특정 양의 리소스가 할당되어 show memory summary가 eXR 릴리스 6.2.1 이상에서 전체 총 물리적 메모리를 표시하지 않는 이유를 설명할 수 있습니다. Linux 컨테이너는 NCS5000 및 NCS5500 플랫폼에 표시되므로 할당된 메모리에 대한 제한을 가질 수 있으며, 이러한 플랫폼에서도 'show memory summary' CLI에 대한 동일한 동작이 관찰됩니다.