Introduzione
Questo documento descrive il problema della memoria virtuale BGP (RLIMIT) sui router Cisco e delinea i passaggi da seguire quando si incontra questo problema.
Premesse
Limite definisce il limite di risorse per un processo in XR e varia a seconda dei requisiti di memoria di ogni processo. Questi limiti possono variare tra le versioni in quanto possono essere regolati in base alle nuove esigenze e ai nuovi risultati. Rlimit è determinato dalle allocazioni di memoria fissa per componenti quali memoria condivisa, kernel e dllmgr, rendendolo non configurabile tramite CLI.
Riepilogo
L'utilizzo di memoria è schizzato al 90% dopo che è stata stabilita la connessione peer BGP. Ciò potrebbe anche causare il crash del processo 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
Con questo comando viene visualizzata la quantità massima di memoria a cui può accedere qualsiasi processo.
RP/0/RSP0/CPU0:ASR#show bgp process performance-statistics | i RLIMIT
Platform RLIMIT max: 2281701376 bytes
Questo comando mostra il limite dinamico nell'heap:
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
Limitazione
La restrizione RLIMIT è un fattore critico per i sistemi cXR a 32 bit, in cui viene imposto un limite massimo di memoria. Questa limitazione influisce direttamente sulla memoria disponibile per i processi BGP.
Tuttavia, nei sistemi eXR a 64 bit, l'RLIMIT è notevolmente aumentato. Questo miglioramento moltiplica la memoria disponibile per i processi BGP, fornendo un ambiente più solido per la gestione di tabelle di routing più grandi e più peer.
Trovare il confronto tra l'allocazione di memoria:
Dispositivo con RSP880-LT-TR ed eXR ha il LIMITE per BGP di 7,4 GB
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
Dispositivo con RSP880-LT-TR e cXR con limite per BGP di 2,5 GB
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
Soluzione/soluzione possibile
Per risolvere il problema di memoria con BGP, è possibile prendere in considerazione questi passaggi.
-
Aggiornamento al sistema a 64 bit
-
Cambia profilo ASR9k
-
Passare dal profilo ASR9k predefinito al profilo L3XL. Questa regolazione aumenta l'allocazione della memoria per BGP, riducendo la pressione della memoria.
-
Si noti che il passaggio al profilo L3XL riduce la memoria disponibile per altri processi. È pertanto essenziale valutare l'impatto sulle prestazioni complessive del sistema.
-
Prima di implementare il profilo L3XL, esaminare attentamente la documentazione della piattaforma per comprenderne le implicazioni e garantire la compatibilità con i requisiti di sistema.
-
Valutazione manopola "soft-reconfiguration inbound always"
-
L'utilizzo della manopola 'soft-reconfiguration inbound always' richiede molta memoria, soprattutto se sono presenti percorsi aggiuntivi.
-
Verificare i peer BGP privi della funzionalità di aggiornamento delle route e accertarsi che questa manopola sia abilitata solo per i peer specifici.
-
Rimuovere questa manopola dai peer che supportano l'aggiornamento della route per recuperare memoria.
-
Implementa criteri di route per negare alcuni prefissi
-
Riduzione del numero di peer BGP
-
Riavviare il processo BGP o ricaricare il router
-
Valutazione delle funzionalità a uso intensivo di memoria
-
Alcune funzionalità, ad esempio NSR (Non-Stop Routing), i percorsi aggiuntivi e il percorso massimo, possono aumentare l'utilizzo della memoria.
-
Valutare la necessità di queste funzionalità e valutare la possibilità di disabilitarle o ottimizzarle se non sono di importanza critica per le operazioni di rete.
Questi passaggi consentono di gestire meglio l'utilizzo della memoria e di garantire la stabilità e le prestazioni dei processi BGP.
Se il problema persiste, raccogliere i log e raggiungere Cisco 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