Inleiding
In dit document worden algemene tips voor het oplossen van problemen beschreven voor het verzamelen van aanvullende informatie voor een geheugenlekprobleem.
Voorwaarden
Vereisten
Cisco raadt u aan om basiskennis te hebben van deze onderwerpen:
- Basiskennis van Cisco IOS® XE
- Basiskennis van Embedded Event Manager (EEM)
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies. Het is van toepassing op alle Cisco IOS XE-routeringsplatforms zoals ASR1000, ISR4000, ISR1000, Cat8000 of Cat8000v.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
In dit document vindt u gemeenschappelijke logs die het apparaat genereert in geval van een hoog geheugengebruik.
U kunt ook zien hoe u kunt profiteren van de functie Embedded Event Manager om TAC te helpen bij het bewaken en verkrijgen van gegevens over situaties waarin de IOS XE-router vaak geen geheugen meer heeft.
Het doel van dit document is niet om eventuele procedures voor probleemoplossing uitgebreid uit te leggen, indien beschikbaar, maar alleen verwijzingen naar meer gedetailleerde handleidingen voor probleemoplossing worden verstrekt.
Symptomen van IOS XE-routers die geen geheugen meer hebben
Bij problemen met het hoge geheugengebruik ziet u meestal een logboekbericht dat aangeeft dat de waarschuwingslimiet van 85% is bereikt. Deze waarde varieert afhankelijk van de versie. Verschillende logs worden gegenereerd, afhankelijk van waar het systeem het probleem heeft gevonden:
TCAM problemen:
CPP_FM-3-CPP_FM_TCAM_WARNING
IOSd (Control plane):
SYS-2-MALLOCFAIL
SYS-2-CHUNKEXPANDFAIL
SYS-4-CHUNKSIBLINGS OVERSCHREDEN
QFP (gegevensvlak):
QFPOOR-4-LOWRSRC_PERCENT_WARN
QFPOOR-4-TOP_EXMEM_USER
CPPEXEM-3-NOMEM
CPPEXMEM-3-TOPGEBRUIKER
Tijdelijk bestandssysteem (TMPFS):
PLATFORM-3- ELEMENT_TMPFS_WARNING
Algemeen systeemlogboek (isolatie nodig):
PLATFORM-4-ELEMENT_WAARSCHUWING
PLATFORM-3-ELEMENT_KRITIEK
Opmerking: verbeteringen in het logboek zijn beschikbaar vanaf versie 10 .12 en hoger.
Informatie over de TAC-behoeften voor de eerste triage
toonklok
show version
Platformbronnen weergeven
Toon platformsoftwarestatus controle-processor samenvatting
Toon procesgeheugen gesorteerd
Geheugenstatistieken weergeven
Totalen geheugentoewijzend proces weergeven
Toon procesgeheugenplatform gesorteerd
logboekregistratie weergeven
- In het geval van een onverwachte herlading vanwege een laag geheugen:
kernbestands-/systeemrapport
- Grafiek van het geheugengebruik in de tijd.
Het bevestigen van een showtech is wenselijk, het is nuttig voor TAC en u kunt profiteren van de automatisering die TAC heeft ontwikkeld om u te helpen problemen sneller te vinden.
Omstandigheden die leiden tot een hoog geheugengebruik zijn altijd softwaregerelateerd. Niet alle gevallen van hoog geheugengebruik zijn echter onverwacht. Het is belangrijk om rekening te houden met de beschikbare DRAM en de mix van functies die op het apparaat worden uitgevoerd.
Problemen oplossen met een hoog geheugengebruik is soepeler, effectiever en met een betere TAC-interactie als u Radkit gebruikt. Deze tool, ontwikkeld door Cisco, biedt TAC een zeer veilige en eenvoudige manier om toegang te krijgen tot de apparaten die u in uw netwerk selecteert. Ga voor meer informatie naar: Cisco RADKit
Opmerking: zorg ervoor dat u een ondersteunde versie gebruikt. Zoek naar het document Einde van verkoop en Levenseinde voor de release. Indien nodig, ga naar een versie die momenteel onder Software Maintenance Releases staat. Anders kan TAC worden beperkt op de opties voor probleemoplossing en -oplossing.
Voor een compleet document over het oplossen van geheugenproblemen kunt u de volgende handleidingen raadplegen:
Op ISR4K: gids voor probleemoplossing met geheugen voor ISR's uit de Cisco 4000-reeks.
Op ASR1K: ASR 1000-reeks Router Memory Probleemoplossingsgids.
Inzicht in het hoge geheugengebruik
In Cisco IOS XE-routers is DRAM een van de belangrijkste bronnen die kernfunctionaliteit ondersteunt. DRAM wordt gebruikt voor het opslaan van verschillende gegevenstypen en processen/functies die essentieel zijn voor zowel de bediening van het besturingsvliegtuig als van het gegevensvliegtuig.
Belangrijkste toepassingen van DRAM in IOS XE-routers zijn:
IOSd Geheugen (Control Plane Structures): slaat informatie op die gerelateerd is aan het besturingsvlak van het apparaat, zoals routeringsinformatie/protocollen, netwerkbeheerstructuren, systeemconfiguraties en informatie over functies.
QFP-geheugen (Data Plane Structures): slaat alles op rond QFP-bewerkingen die door de microcode worden afgehandeld, zoals belangrijke structuren van functies die zijn opgeslagen in de QFP, microcodeinstructies en doorstuurinstructies.
Tijdelijk bestandssysteem (TMPFS): Gemonteerd in DRAM en beheerd door IOSd, dient TMPFS als een snel toegankelijk opslaggebied voor bestanden die nodig zijn voor de processen. In het geval dat deze bestanden persistent zijn, worden ze verplaatst naar een harddisk / bootflash. Het verbetert de systeemprestaties door de lees-/schrijftijden voor tijdelijke gegevens te verkorten.
Algemene processen die op de Linux-kernel worden uitgevoerd: Aangezien IOS XE op een Linux-kernel werkt, ondersteunt DRAM ook verschillende systeemprocessen die bovenop deze kernel worden uitgevoerd.
Een hoog geheugengebruik van meer dan 85% duidt doorgaans op een aanzienlijk DRAM-verbruik, wat van invloed kan zijn op de prestaties van de router. Dit verhoogde gebruik kan het gevolg zijn van legitieme eisen, zoals het opslaan van uitgebreide routeringstabellen of het inschakelen van resource-intensieve functies. Het kan echter ook problemen signaleren zoals inefficiënt geheugenbeheer door bepaalde functies of geheugenlekken, waarbij het geheugen na gebruik niet goed wordt vrijgegeven.
Door het geheugengebruik in IOSd-geheugen, QFP-geheugen, TMPFS en algemene Linux-processen te bewaken, kunnen u en TAC potentiële problemen vroegtijdig identificeren.
EEM om geheugengebruik te bewaken
Voor het oplossen van geheugenproblemen moet TAC gedurende een bepaalde periode een reeks opdrachten verzamelen om het overtredende proces te identificeren. Soms, nadat het proces van de boosdoener is geïdentificeerd, zijn aanvullende specifieke opdrachten nodig, waardoor het oplossen van geheugenproblemen een van de meest tijdrovende soorten probleemoplossing is.
Om het oplossen van problemen gemakkelijker te maken, kunt u de EEM-functie gebruiken om informatie te controleren en automatisch te verzamelen. Er zijn twee belangrijke overwegingen voor het schrijven van het EEM-script: trigger en commando's die moeten worden verzameld.
Triggers
Patroon. U kunt het patroon van de sectie Symptomen van Cisco IOS XE-routers gebruiken die geen geheugen meer hebben. Het formaat ziet er als volgt uit:
Gebeurtenis syslog patroon <patroon> ratelimit 300 MaxRun 180
Een van de overwegingen bij het gebruik van een patroon als trigger, is dat het logboek wordt gegenereerd zodra de waarschuwingsdrempel is bereikt, afhankelijk van de geheugenverbruikssnelheid, in een poging om het handmatig te doen, hebben u of TAC niet genoeg tijd voor een meer gedetailleerde probleemoplossing.
Cron timer. Voorbeeld van een cron timer die elke 30 minuten moet worden geactiveerd:
event timer cron naam HalfHour cron-entry "*\30 * * * * *"
Een van de voordelen van een cron timer ten opzichte van een patroon is dat je niet hoeft te wachten tot het apparaat bijna geen geheugenbronnen meer heeft om informatie te verzamelen. Afhankelijk van het geheugenverbruik, met de juiste monitoring en informatie, kan TAC het gewraakte proces identificeren voordat de waarschuwingsdrempel wordt bereikt.
Opmerking: Ratelimit- en maxrun-opties worden gebruikt om te garanderen dat de volledige set uitgangen wordt verzameld. Ze helpen ook om extra ruis of EEM-activering te voorkomen in situaties waarin meerdere logs in een korte periode verschijnen.
EEM-voorbeelden met algemene opdrachten voor initiële triage:
configure terminal
event manager applet TAC_EEM authorization bypass
event syslog pattern " PLATFORM-4-ELEMENT_WARNING" ratelimit 300 maxrun 180
action 0.1 cli command "enable"
action 0.2 cli command "term exec prompt timestamp"
action 0.3 cli command "term length 0"
action 0.4 cli command "show process memory platform sorted | append bootflash:TAC_EEM.txt"
action 0.5 cli command "show processes memory platform sorted location chassis 1 R0 | append bootflash:TAC_EEM.txt"
action 0.9 cli command "show platform resources | append bootflash:TAC_EEM.txt"
action 1.0 cli command "show platform software status control-processor brief | append bootflash:TAC_EEM.txt"
action 1.1 cli command "show clock | append bootflash:TAC_EEM.txt"
action 1.3 cli command "show platform software process memory chassis active r0 all sorted | append bootflash:TAC_EEM.txt"
action 1.5 cli command "show process memory platform accounting | append bootflash:TAC_EEM.txt"
Dagelijks monitoren met een cron timer:
configure terminal
event manager applet TAC_EEM2 authorization bypass
event timer cron name DAYLY cron-entry "0 0 * * *"
action 0.1 cli command "enable"
action 0.2 cli command "term exec prompt timestamp"
action 0.3 cli command "term length 0"
action 0.4 cli command "show process memory platform sorted | append bootflash:TAC_EEM2.txt"
action 0.5 cli command "show processes memory platform sorted location chassis 1 R0 | append bootflash:TAC_EEM2.txt"
action 0.6 cli command "show processes memory platform sorted location chassis 2 R0 | append bootflash:TAC_EEM2.txt"
action 0.9 cli command "show platform resources | append bootflash:TAC_EEM2.txt"
action 1.0 cli command "show platform software status control-processor brief | append bootflash:TAC_EEM2.txt"
action 1.1 cli command "show log | append bootflash:TAC_EEM2.txt"
action 1.2 cli command "show clock | append bootflash:TAC_EEM2.txt"
action 1.3 cli command "show platform software process memory chassis active r0 all sorted | append bootflash:TAC_EEM2.txt"
action 1.5 cli command "show process memory platform accounting | append bootflash:TAC_EEM2.txt"
Voor een uitgebreidere lijst met opdrachten raadpleegt u de handleidingen in de sectie Informatie over TAC-behoeften voor de eerste triage.
kernbestand
Wanneer het geheugengebruik een kritiek niveau bereikt, is de kans groot dat het besturingssysteem een crash forceert om van deze toestand te herstellen en een systeemrapport genereert dat een kernbestand bevat.
Het kernbestand is de volledige dump van geheugen voor een bepaald proces dat op een bepaald moment is gecrasht. Dit kernbestand is van cruciaal belang voor TAC om het geheugen te inspecteren en de broncode te analyseren om de omstandigheden en mogelijke redenen van de onverwachte herlading / crash van het proces te begrijpen.
Het kernbestand helpt TAC en ontwikkelaars om de hoofdoorzaak van het probleem te vinden, te debuggen en het probleem op te lossen.
Opmerking: Hoewel TAC en ontwikkelaars streven naar het krijgen van een oorzaak, zijn er momenten waarop de crash een gevolg was van een netwerkgebeurtenis, of een timingprobleem waardoor het vrijwel onmogelijk is om het in het lab te reproduceren.
Voor meer informatie over onverwachte herlaadbewerkingen en hoe u een kernbestand kunt ophalen, raadpleegt u Problemen oplossen met onverwachte herlaadbewerkingen in Cisco IOS®-platforms met TAC.