Einleitung
In diesem Dokument wird das BGP Virtual Memory (RLIMIT)-Problem bei Cisco Routern beschrieben und erläutert, wie Sie vorgehen müssen, wenn dieses Problem auftritt.
Hintergrundinformationen
Rlimit definiert das Ressourcenlimit für einen Prozess in XR und variiert je nach den Anforderungen des Prozessspeichers. Diese Beschränkungen können je nach Version unterschiedlich sein, da sie auf der Grundlage neuer Anforderungen und Erkenntnisse angepasst werden können.Rlimit wird durch feste Speicherzuweisungen für Komponenten wie Shared Memory, Kernel und dllmgr bestimmt, wodurch es über CLI nicht konfigurierbar ist.
Problemübersicht
Die Speichernutzung hat nach Herstellung der BGP-Peer-Verbindung einen Spitzenwert von 90 % erreicht. Dies kann auch zum Absturz des BGP-Prozesses führen.
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
Dieser Befehl zeigt die maximale Speicherkapazität an, auf die jeder Prozess zugreifen kann.
RP/0/RSP0/CPU0:ASR#show bgp process performance-statistics | i RLIMIT
Platform RLIMIT max: 2281701376 bytes
Dieser Befehl zeigt die dynamische Grenze im Heap an:
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
Einschränkung
Die RLIMIT-Einschränkung ist ein kritischer Faktor bei cXR-32-Bit-Systemen, bei denen eine Speicherbegrenzung durchgesetzt wird. Diese Einschränkung wirkt sich direkt auf den für BGP-Prozesse verfügbaren Arbeitsspeicher aus.
Auf eXR 64-Bit-Systemen wird der RLIMIT jedoch deutlich erhöht. Diese Erweiterung vervielfacht den verfügbaren Arbeitsspeicher für BGP-Prozesse und schafft so eine stabilere Umgebung für die Verarbeitung größerer Routing-Tabellen und mehr Peers.
Hier finden Sie den Vergleich der Speicherzuweisung:
Gerät mit RSP880-LT-TR und eXR hat das LIMIT für BGP als 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
Gerät mit RSP880-LT-TR und cXR hat das LIMIT für BGP als 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
Mögliche Lösung
Um das Speicherproblem mit BGP zu beheben, können diese Schritte in Betracht gezogen werden.
-
Upgrade auf 64-Bit-System
-
ASR9k-Profil ändern
-
Schalten Sie das ASR9k-Profil von der Standardeinstellung auf das L3XL-Profil um. Durch diese Anpassung wird die Speicherzuweisung für BGP erhöht, was dazu beitragen kann, den Speicherdruck zu verringern.
-
Beachten Sie, dass durch den Wechsel zum L3XL-Profil der für andere Prozesse verfügbare Arbeitsspeicher verringert wird. Daher ist es wichtig, die Auswirkungen auf die Gesamtsystemleistung zu bewerten.
-
Vor der Implementierung des L3XL-Profils sollten Sie die Plattformdokumentation sorgfältig durchlesen, um die Auswirkungen zu verstehen und die Kompatibilität mit Ihren Systemanforderungen sicherzustellen.
-
"Soft-Reconfiguration inbound always" auswerten
-
Die Verwendung des Reglers 'soft-reconfiguration inbound always' ist sehr speicherintensiv, insbesondere wenn zusätzliche Pfade vorhanden sind.
-
Aktivieren Sie BGP-Peers, die keine Routen-Aktualisierungsfunktion haben, und stellen Sie sicher, dass dieser Regler nur für diese Peers aktiviert ist.
-
Entfernen Sie diesen Regler von Peers, die eine Routenaktualisierung unterstützen, um Speicher zurückzugewinnen.
-
Implementierung einer Routenrichtlinie, um einige Präfixe abzulehnen
-
Erstellen Sie eine Routingrichtlinie, um bestimmte Präfixe abzulehnen. Dies kann dazu beitragen, die Speichernutzung zu reduzieren, indem die Anzahl der Routen, die verarbeitet und gespeichert werden müssen, begrenzt wird.
-
Reduzierung der Anzahl an BGP-Peers
-
Verringern Sie die Anzahl der BGP-Peers auf dem Router, um den Gesamtspeicherbedarf zu reduzieren. Dieser Schritt ist besonders nützlich, wenn Sie eine große Anzahl von Peers haben, die zur hohen Speichernutzung beitragen.
-
BGP-Prozess neu starten oder Router neu laden
-
Ein manueller Neustart des BGP-Prozesses oder das Neuladen des Routers kann dazu beitragen, Speicher freizugeben. Dies ist eine vorübergehende Lösung, die jedoch kurzfristige Speicherprobleme wirksam beheben kann.
-
Bewerten speicherintensiver Funktionen
-
Beachten Sie, dass bestimmte Funktionen wie Non-Stopp Routing (NSR), zusätzliche Pfade und Maximum-Path zu einer erhöhten Speichernutzung beitragen können.
-
Bewerten Sie die Notwendigkeit dieser Funktionen, und überlegen Sie, sie zu deaktivieren oder zu optimieren, wenn sie für den Netzwerkbetrieb nicht kritisch sind.
Diese Schritte optimieren das Management der Speichernutzung und stellen die Stabilität und Leistung Ihrer BGP-Prozesse sicher.
Wenn das Problem weiterhin nicht behoben werden kann, sammeln Sie die Protokolle, und wenden Sie sich an das 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