簡介
在執行增強型XR(eXR)的聚合服務路由器9000(ASR9K)上(也稱為64位XR 6.2.1版及更高版本),命令「show memory summary」不會顯示相應的資料表上記錄的所有內部記憶體,這可能會讓某些客戶感到困惑。
問題詳細資訊
下面我們將使用運行6.4.2的ASR9901作為示例。
根據資料表,整合路由處理器(RP)具有32 GigaBytes(GB)的隨機訪問記憶體(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」只顯示約27GB,儘管系統在「admin show system resources」下識別總記憶體為32GB。
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開始,ASR9K上的eXR將使用虛擬機器(VM)虛擬化模型,從版本6.1.2和6.1.3中使用的Linux Container(LXC)模型轉換而來。
與虛擬機器(VM)相比,容器可以將更多的應用程式打包到單個物理伺服器中。
VM會佔用大量的系統資源。每個VM運行的不只是作業系統的完整複製,而是作業系統(OS)需要運行的所有硬體的虛擬複製。這可能會增加大量記憶體和CPU週期。相反,容器需要的只是作業系統、支援程式和庫以及系統資源足以運行特定程式。但是,VM在容納服務中軟體升級(ISSU)等功能方面提供了更大的靈活性。
因為Linux Containers共用主機的物理資源和核心,而每個VM都需要自己的作業系統和虛擬化硬體,所以這就解釋了為什麼每個VM從整個主機分配了特定數量的資源,從而導致show memory summary沒有顯示eXR 6.2.1版及更高版本上的總實體記憶體。Linux聯結器也可能對分配的內存有限制,因為它顯示在NCS5000和NCS5500平台上,並且在這些平台上會觀察到「show memory summary」CLI的相同行為。