Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Achtergrondinformatie

Symptomen van IOS XE-routers die bijna geen geheugen hebben

Informatie TAC Behoeften voor eerste triage

Een goed begrip van een hoog geheugengebruik

Geheugengebruik monitoren

triggers

Core-bestand

Inleiding

Dit document beschrijft algemene tips voor probleemoplossing bij het verzamelen van aanvullende informatie over een geheugenlekprobleem.

Voorwaarden

Vereisten

Cisco raadt u aan een basiskennis te hebben van deze onderwerpen:

- Basiskennis van Cisco IOS® XE

- Basiskennis in Embedded Event Manager (EEM)

Gebruikte componenten

Dit document is niet beperkt tot specifieke software- en hardware-versies. Het is van toepassing op alle routing-Cisco IOS XE-platforms zoals ASR 1000, ISR 4000, ISR 1000, 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 algemene logbestanden die het apparaat genereert bij een hoog geheugengebruik.

U kunt ook zien hoe u kunt profiteren van de functie Ingesloten Event Manager om TAC te helpen bij het controleren en verkrijgen van gegevens over situaties waar 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, als deze beschikbaar zijn, maar alleen verwijzingen naar gedetailleerdere handleidingen voor probleemoplossing worden geboden.

Symptomen van IOS XE-routers die bijna geen geheugen hebben

Wanneer het behandelen van de problemen van het hoge geheugengebruik, typisch, ziet u een logboekbericht erop wijst dat dat de waarschuwingsgrens van 85% is bereikt. Deze waarde varieert afhankelijk van de versie. Verschillende logbestanden worden gegenereerd afhankelijk van waar het systeem het probleem heeft gevonden:

TCAM-problemen:

CPP_FM-3-CPP_FM_TCAM_WAARSCHUWING

IOSd (regelvlak):

SYS-2-MALLOCFAIL

SYS-2-CHUNKEXPANDFAIL

SYS-4-CHUNKSIBLINGSOVERSCHRIJDEN

QFP (gegevensvlak):

QFPOOR-4-LOW SRC_PERCENT_WARN

QFPOOR-4-TOP_EXME_USER

PPEXMEM-3-NOMEM

PPEXME-3-TOPUSER

Tijdelijk bestandssysteem (TMPFS):

PLATFORM-3 - ELEMENT_TMPFS_WARNING

Algemeen systeemlogboek (isolatie nodig):

PLATFORM-4-ELEMENT_WAARSCHUWING

PLATFORM-3-ELEMENT_KRITIEK

Opmerking: Log verbeteringen zijn beschikbaar vanaf versie 16.12 en hoger.

Informatie TAC Behoeften voor eerste triage

- Opdrachten uitvoer:

toonklok

show version

toon platformmiddelen

toon platform software status controle-processor samenvatting

toon procesgeheugen gesorteerd

geheugenstatistieken weergeven

totalen van proces voor geheugentoewijzing weergeven

toon het gesorteerde platform van het procesgeheugen

logboekregistratie tonen

- In het geval van een onverwachte herlading door een geheugengebrek:

kernrapport bestand/systeem

- Grafiek van geheugengebruik in de loop der tijd.

Het aansluiten van een show technologie is wenselijk, het is nuttig voor TAC, en u kunt profiteren van de automatisering TAC heeft ontwikkeld om u te helpen sneller problemen te vinden.

Voorwaarden die leiden tot een hoog geheugengebruik zijn altijd software-gerelateerd. Echter, niet alle gevallen van hoog geheugen gebruik zijn onverwacht. Het is belangrijk om de beschikbare DRAM en de mix van functies die op het apparaat lopen te overwegen.

Problemen oplossen met een hoog geheugengebruik is vloeiender, 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. Voor meer informatie, surf naar: Cisco RADKit

Opmerking: controleer of u een ondersteunde versie uitvoert. Zoek naar het End-of-Sale- en End-of-Life-document voor de release. Verplaats, indien nodig, naar een versie die momenteel wordt geleverd onder Software Maintenance Releases. Anders kan TAC beperkt worden op basis van de opties voor probleemoplossing en resolutie.

Voor een volledig document over het oplossen van geheugenproblemen kunt u deze handleidingen raadplegen:

Op ISR4K: Handleiding voor probleemoplossing in geheugen voor Cisco 4000 Series ISR’s.

Op ASR1K: ASR 1000 Series handleiding voor probleemoplossing voor routergeheugen.

Een goed begrip van een hoog geheugengebruik

In Cisco IOS XE-routers is DRAM een van de belangrijkste bronnen die kernfunctionaliteit ondersteunt. DRAM wordt gebruikt voor de opslag van verschillende gegevenstypen en processen/kenmerken van informatie die essentieel zijn voor zowel de besturings- als dataplatformbewerkingen.

Het belangrijkste gebruik van DRAM in IOS XE routers omvat:

IOSd Geheugen (Control Plane Structures): Hierop wordt informatie met betrekking tot het besturingsplane van het apparaat opgeslagen, zoals: routering van informatie/protocollen, netwerkbeheerstructuren, systeemconfiguraties en informatie over functies.

QFP-geheugen (Data Plane Structures): slaat alles op rond QFP-operaties die door de microcode worden verwerkt, zoals sleutelstructuren van functies die zijn opgeslagen in de QFP, microcode-instructies en instructies voor doorsturen.

Tijdelijk bestandssysteem (TMPFS): geïnstalleerd in DRAM en beheerd door IOSd, TMPFS fungeert als een snel toegankelijk opslaggebied voor bestanden die nodig zijn voor de processen. Als die 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 lopen: Aangezien IOS XE op een Linux-gebaseerde kernel werkt, steunt DRAM ook diverse systeemprocessen die bovenop deze kernel lopen.

Een hoog geheugengebruik van meer dan 85% duidt doorgaans op een aanzienlijk verbruik van DRAM’s, wat van invloed kan zijn op de routerprestaties. Dit verhoogde gebruik kan een resultaat van wettige eisen zijn, zoals het opslaan van uitgebreide routingstabellen, of het toelaten van middel-intensieve eigenschappen. Het kan echter ook problemen signaleren zoals inefficiënt geheugenbeheer door bepaalde functies of geheugenlekken, waarbij geheugen niet goed wordt vrijgegeven terug naar het systeem na gebruik.

Door geheugengebruik over IOSd-geheugen, QFP-geheugen, TMPFS en algemene Linux-processen te monitoren, kunnen u en TAC potentiële problemen vroeg identificeren.

Geheugengebruik monitoren

Voor het oplossen van geheugenproblemen moet TAC een verzameling opdrachten verzamelen over een bepaalde periode om het beledigende proces te identificeren. Soms, nadat het schuldige proces wordt geïdentificeerd, zijn de extra specifieke bevelen nodig, makend het geheugenoplossen van problemen één van de meest tijdrovende types van het oplossen van problemen.

Om deze probleemoplossing 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 gebruiken van sectiesymptomen van Cisco IOS XE-routers die bijna geen geheugen meer hebben. Het formaat ziet er als volgt uit:

gebeurtenis syslog patroon <patroon> snelheid 300 max.run 180

Een van de overwegingen bij het gebruik van een patroon als trigger, is dat het logbestand wordt gegenereerd zodra de waarschuwingsdrempel is bereikt, afhankelijk van de geheugenconsumptie, die het handmatig probeert te doen, u of TAC niet genoeg tijd hebben voor een gedetailleerdere probleemoplossing.

Corontijzer. Voorbeeld van een centrifugetimer die elke 30 minuten moet worden geactiveerd:

event timer cron naam HalfHour cron-entry "*\30 * * *"

Een van de voordelen van een hoektimer over een patroon is dat u niet hoeft te wachten tot het apparaat bijna geen geheugen middelen meer heeft om informatie te verzamelen. Afhankelijk van de snelheid van het geheugenverbruik, met de juiste bewaking en informatie, kan TAC het gekrenkte proces identificeren alvorens de waarschuwingsdrempel te bereiken.

Opmerking: Ratelimit- en maxrun-opties worden gebruikt om te garanderen dat de volledige set van outputs wordt verzameld. Ze helpen ook om extra ruis of EEM-activering te voorkomen in situaties waarin meerdere logbestanden in een korte periode verschijnen.

EEM-voorbeelden met algemene opdrachten voor eerste proefversie:

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"

Monitor dagelijks met een centrifugetimer:

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 het gedeelte Informatie over de TAC-behoeften voor de eerste proefversie.

Core-bestand

Wanneer het geheugengebruik een kritiek niveau bereikt, is de kans dat het besturingssysteem een crash afdwingt om te herstellen van deze toestand, het genereren van een systeemrapport 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 geheugen te inspecteren en 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 basisoorzaak van het probleem te vinden, te zuiveren en het probleem op te lossen.

Opmerking: ook al streven TAC en ontwikkelaars naar het krijgen van een wortel oorzaak, er zijn tijden waar de crash een gevolg was van een netwerkgebeurtenis, of een timing kwestie die het vrijwel onmogelijk maakt om het te reproduceren in het lab.

Raadpleeg Probleemoplossing bij onverwachte herladingen en het ophalen van een kernbestand voor meer informatie over onverwachte herladingen in Cisco IOS®-platforms met TAC.