目錄

簡介

背景資訊

問題摘要

限制

可能的解決方法/解決方案

簡介

本檔案介紹Cisco路由器上的BGP虛擬記憶體(RLIMIT)問題，並概述遇到此問題時應採取的步驟。

背景資訊

Rlimit定義了XR中某個進程的「資源限制」，根據每個進程記憶體要求而有所不同。這些限制在版本之間可能不同，因為它們可以根據新的需求和發現進行調整。限制由元件（如共用記憶體、核心和dllmgr）的固定記憶體分配確定，因此不能透過CLI進行配置。

問題摘要

Memory usage spiked to 90% after the BGP peer connection was established.

This can also cause the BGP process to crash.

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 This command shows the maximum amount of memory that any process can access.

RP/0/RSP0/CPU0:ipdsl-slp-colonias-4#show bgp process performance-statistics |

i RLIMIT Tue Feb 14 15:28:14.051 CDT Platform RLIMIT max: 2281701376 bytes

<<<<<<<<<<<

此命令顯示堆中的記憶體限制：

RP/0/RSP0/CPU0:ipdsl-slp-colonias-4#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進程的可用記憶體倍增，為處理更大的路由表和對等體提供了更穩健的環境。

請參閱記憶體配置比較：

Device with RSP880-LT-TR and eXR has the RLIMIT for BGP as 7.4GB

RP/0/RSP0/CPU0:RP#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

Device having RSP880-LT-TR and cXR has the RLIMIT for BGP as 2.5GB

RP/0/RSP0/CPU0:RP#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位元系統：

- BGP受益於64位系統上更大的記憶體分配，根據RLIMIT的定義，約為8GB。此升級可幫助管理BGP增加的記憶體需求。

更改ASR9k配置檔案：

- 將ASR9k配置檔案從預設設定切換到L3XL配置檔案。此調整會增加BGP的記憶體配置，有助於緩解記憶體壓力。

- 請注意，變更為L3XL設定檔會減少其他處理作業可用的記憶體。因此，有必要評估對系統整體效能的影響。

- 在實作L3XL設定檔之前，請徹底檢閱平台檔案，瞭解其影響，並確保與您的系統需求相容。

- 計算soft-reconfiguration inbound always旋鈕。

- 使用soft-reconfiguration inbound always命令需要大量記憶體，特別是如果存在其他路徑時。

- 檢查缺少路由刷新功能的BGP對等體，並確保只為那些特定對等體啟用此命令。

- 從支援路由刷新以回收記憶體的對等體中刪除此命令。

- 實施路由策略以拒絕某些字首：

- 建立路由策略以拒絕某些字首，透過限制需要處理和儲存的路由的數量，這有助於減少記憶體使用。

- 減少BGP對等體的數量

- 減少路由器上的BGP對等體數量以降低整體記憶體消耗。如果您有大量對等體導致高記憶體使用，此步驟特別有用。

- 重新啟動BGP進程或重新載入路由器

- 手動重新啟動BGP進程或重新載入路由器有助於釋放記憶體。這是一個臨時解決方案，但可有效緩解即時的記憶體問題。

- 評估記憶體密集型功能

- 請注意，某些功能(如不中斷路由(NSR)、其他路徑和最大路徑)會增加記憶體使用率。

- 評估這些功能的必要性，並考慮停用或最佳化這些功能（如果它們對於您的網路運行不是很關鍵）。

這些步驟可以更好地管理記憶體使用，並確保BGP進程的穩定性和效能。

收集記錄：

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