簡介
本檔案介紹Cisco路由器上的BGP虛擬記憶體(RLIMIT)問題,並概述遇到此問題時應採取的步驟。
背景資訊
Rlimit定義了XR中某個進程的「資源限制」,根據每個進程記憶體要求而有所不同。這些限制在版本之間可能不同,因為它們可以根據新的需求和發現進行調整。限制由元件(如共用記憶體、核心和dllmgr)的固定記憶體分配確定,因此不能透過CLI進行配置。
問題摘要
建立BGP對等體連線後,記憶體使用率激增至90%。這也可能導致BGP進程崩潰。
RP/0/RSP0/CPU0:Jul 15 01:04:24.815 GMT: bgp[1087]: %HA-HA_WD_LIB-4-RLIMIT :wd_handle_sigxfsz: Reached 90% of RLIMIT_DATA
RP/0/RSP0/CPU0:Jul 15 01:04:24.815 GMT: bgp[1087]: %ROUTING-BGP-4-VIRTUAL_MEMORY_LIMIT_THRESHOLD_REACHED : BGP virtual memory has reached 90% of the maximum allowed limit of 2281 MB for this platform
此命令顯示任何進程可訪問的最大記憶體量。
RP/0/RSP0/CPU0:ASR#show bgp process performance-statistics | i RLIMIT
Platform RLIMIT max: 2281701376 bytes
此命令顯示堆中的動態限制:
RP/0/RSP0/CPU0:ASR#show bgp instance all scale
BGP instance 0: 'default'
=========================
VRF: default
Neighbors Configured: 2 Established: 2
Address-Family Prefixes Paths PathElem Prefix Path PathElem
Memory Memory Memory
IPv4 Unicast 112649 225065 112649 9.88MB 13.74MB 6.77MB
IPv6 Unicast 6358 12581 6358 645.73KB 786.31KB 391.17KB
------------------------------------------------------------------------------
Total 119007 237646 119007 10.51MB 14.50MB 7.15MB
node: node0_RSP0_CPU0
------------------------------------------------------------------
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------
1067 1M 10M 572K 2001M 2175M 145M 2012M bgp <<<<<<<<<<<<<<
343 8K 12K 128K 421M 1024M 30M 422M mibd_infra
1141 22M 5M 1012K 374M 2048M 95M 380M netconf
Total text: 22893 pages
data: 24102 pages
stack: 6765 pages
malloced: 21257 pages
限制
RLIMIT限制是cXR 32位元系統的重要因素,會強制設定記憶體上限。此限制直接影響可用於BGP進程的記憶體。
然而,在eXR 64位元系統上,RLIMIT會大幅增加。此增強功能使BGP進程的可用記憶體倍增,為處理更大的路由表和對等體提供了更穩健的環境。
請參閱記憶體配置比較:
具有RSP880-LT-TR和eXR的裝置的BGP限制為7.4GB
RP/0/RSP0/CPU0:ASR#show processes memory detail 10523
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
==========================================================================================
1087 2M 1030M 136K 41M 7447M 131M 183M bgp
具有RSP880-LT-TR和cXR的裝置的BGP限制為2.5GB
RP/0/RSP0/CPU0:ASR#show processes memory detail 1087
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------
1087 1M 10M 356K 31M 2574M 35M 41M bgp
可能的解決方法/解決方案
要解決BGP的記憶體問題,可以考慮這些步驟。
-
升級到64位系統
-
更改ASR9k配置檔案
-
將ASR9k配置檔案從預設設定切換到L3XL配置檔案。此調整會增加BGP的記憶體配置,有助於緩解記憶體壓力。
-
請注意,變更為L3XL設定檔會減少其他處理作業可用的記憶體。因此,有必要評估對系統整體效能的影響。
-
在實作L3XL設定檔之前,請徹底檢閱平台檔案,瞭解其影響,並確保與您的系統需求相容。
-
評估「永遠軟式重新設定傳入」旋鈕
-
實施路由策略以拒絕某些字首
-
減少BGP對等體的數量
-
重新啟動BGP進程或重新載入路由器
-
評估記憶體密集型功能
這些步驟可以更好地管理記憶體使用,並確保BGP進程的穩定性和效能。
如果問題仍未恢復,請收集日誌並聯絡思科TAC:
show tech-support
show tech-support routing bgp
show processes memory detail <job id> location 0/rsp0/cpu0
show processes memory detail <job id> location 0/rsp1/cpu0
show memory summary location all
show memory heap <job id> location 0/rsp0/cpu0
show memory heap <job id> location 0/rsp1/cpu0
show memory heap dllname <job id>
show bgp scale
show bgp scale standby
show bgp all all process performance-statistics
show bgp all all process performance-statistics detail