Inhoud

Inleiding

Geheugenlekkage

Syslog

Hoe de 9800 WLC te identificeren hebben ervaren geheugenlekkage probleem

Geheugenlekkage in IOS-proces oplossen

Basis logboeken van WLC

Voor processorgeheugenpool

Voor IOS-geheugenpool

Geheugenlek op polis-/platformniveau oplossen

Aanbeveling

Inleiding

Dit document beschrijft een geheugenlek in de context van een Cisco Catalyst 9800 draadloze LAN-controller (WLC).

Geheugenlekkage

Als een programma of proces geheugen toewijst voor tijdelijk gebruik en het niet juist lokaliseert als het niet langer nodig is, dan blijft dat geheugen "in gebruik" vanuit het perspectief van het besturingssysteem. Aangezien het proces blijft werken en er herhaaldelijk niet in slaagt om geheugen te delokaliseren, groeit de totale hoeveelheid geheugen die door het proces wordt gebruikt, en minder geheugen is beschikbaar voor andere processen en systeemfuncties. Geheugenlekken worden meestal veroorzaakt door softwarebugs of problemen met de systeemfirmware of de toepassingen die erop draaien.

In het geval van een Cisco Catalyst 9800 WLC, kan een geheugenlek zich als volgt manifesteren:

- Verminderde Prestaties: Aangezien het geheugen steeds schaarser wordt, vertraagt WLC mogelijk, resulterend in langzamere reactietijden voor beheersfuncties of verminderde prestaties van clientapparaten die aan het netwerk worden aangesloten.

- Systeeminstabiliteit: Kritieke processen kunnen beginnen te mislukken, wat mogelijk kan leiden tot verbroken clientverbindingen, onvermogen om de WLC te beheren of ander afwijkend gedrag.

- Systeemcrashes: In ernstige gevallen kan de WLC mogelijk crashen en opnieuw opstarten, vooral als het geheugen voor essentiële operaties opraakt.

Opmerking: 9800 WLC kan een plotselinge reboot / crash ervaren om het gelekte geheugen terug te winnen en zichzelf te herstellen. Aangezien geheugenlekkage buggy-gedrag is, ontstaan lekken zelfs na het opnieuw opstarten, tenzij de lekkage veroorzakende configuratie/functie is uitgeschakeld.

Syslog

%PLATFORM-4-ELEMENT_WAARSCHUWING:R0/0: klein: RP/0 Gebruikte geheugenwaarde 91% overschrijdt waarschuwingsniveau 88%

Dit bericht drukt de top 3 geheugen verbruikende proces naam samen met de traceky, callsite ID en diff oproepen:

%PLATFORM-4-ELEMENT_WAARSCHUWING: Chassis 1 R0/0: klein: 1/RP/0: Gebruikte geheugenwaarde 91% overschrijdt waarschuwingsniveau 88%. Belangrijkste geheugenallocators zijn: Proces: sessmgrd_rp_0. Tracekey: 1#258b8858a63c7998252e96352473c9c6 Nummerherkenning: 11B8F825A8768000 (diff_call: 20941). Proces: fman_fp_image_fp_0. Tracekey: 1#36b34d8e636a89f6397a3b12acab9706 Nummerherkenning: 1944E78DF68EC002 (diff_call: 19887). Proces: linux_iosd-imag_rp_0. Tracekey: 1#8ec74901dc8e23a44e060e69d5820ece Callsite-id: E2A338E11594003 (diff_call: 13404).

Hoe de 9800 WLC te identificeren hebben ervaren geheugenlekkage probleem

Het is belangrijk om geheugenlekken direct aan te pakken aangezien zij de stabiliteit en de betrouwbaarheid van de netwerkdiensten kunnen compromitteren die door WLC worden verleend. Om een geheugenlek op een WLC te diagnosticeren, kunt u diverse opdrachten op de CLI gebruiken om het geheugengebruik in de loop der tijd te controleren. Ze kunnen op zoek gaan naar processen die een steeds grotere hoeveelheid geheugen gebruiken zonder het vrij te geven, of patronen die aangeven dat geheugen niet wordt hersteld zoals verwacht.

Controleer hoeveel geheugen volledig aan het platform is toegewezen.

9800WLC#show version | in memory

cisco C9800-L-F-K9 (KATAR) processor (revision KATAR) with 1634914K/6147K bytes of memory.

32768K bytes of non-volatile configuration memory.

16777216K bytes of physical memory.

!! Determines Total platform memory available, Here it is 16GB

Controleer hoeveel geheugen is toegewezen aan elke pool.

9800WLC#show processes memory

Processor Pool Total: 1674013452 Used: 823578520 Free: 850434932

reserve P Pool Total: 102404 Used: 88 Free: 102316

lsmpi_io Pool Total: 6295128 Used: 6294296 Free: 832

Controleer het resourcegebruik, inclusief geheugengebruik. Als deze waarde hoger is dan de niveaus Waarschuwing of Kritiek, kan dit wijzen op een mogelijk geheugenlek.

Geheugengebruik op 9800 WLC

Het totale geheugengebruik van de monitor voor de middelen van het controlevliegtuig

9800WLC#show platform software status control-processor brief

Slot  Status  1-Min  5-Min 15-Min

1-RP0 Healthy   0.52   0.75   0.80

Memory (kB)

Slot  Status    Total     Used (Pct)     Free (Pct) Committed (Pct)

1-RP0 Healthy 16327028 4898110(30%) 114218918 (70%) 5387920 (33%)

Controleer de toegewezen en gebruikte geheugengrootte voor de hoogste processen. Als het geheugengebruik blijft stijgen terwijl het vrije geheugen vast blijft of te laag is, is er een grote kans op een geheugenlek op IOSd-niveau.

Per procesgeheugen begint het hoogste holdingproces

Voor geheugenlekkage op platformniveau, controleer de RSS (Resident Set Size) tellers. RSS geeft de hoeveelheid geheugen aan die is toegewezen aan een proces tijdens de uitvoering. Als deze waarde snel stijgt, kan dit wijzen op een mogelijk geheugenlek.

Platform verwerkt geheugengebruik van het hoogste holdingproces

Geheugenlekkage in IOS-proces oplossen

In IOS XE werkt IOS als een proces (daemon) dat bovenop de Linux-kernel draait, bekend als IOSd. Typisch, IOSd wordt toegewezen tussen 35% tot 50% van het totale beschikbare platform DRAM.

Basis logboeken van WLC

Tijdstempel inschakelen voor tijdreferentie voor alle opdrachten.

9800WLC#term exec prompt timestamp

U kunt de configuratie en geheugengerelateerde informatie als volgt bekijken:

9800WLC#show tech-support wireless

9800WLC#show tech-support memory

Verzamel Core Dump-bestand of systeemrapport indien gegenereerd

Via GUI

Naviagte naar Troubleshooting > Core Dumps and System Report

Core Dump and System rapport

Via CLI

9800WLC#show bootflash: | in core/system-report

9800WLC#copy bootflash:system-report/Core_file {tftp: | ftp: | https: ..}

Voor processorgeheugenpool

Controleer per procesgeheugen vanaf het hoogste holdingproces.

9800WLC#show process memory sorted

Controleer de totale geheugenstatus voor de betreffende pool. Het toont ook de grootste gratis blok en het laagste beschikbare geheugen sinds boot.

9800WLC#show memory Statistics

Controleer de programmateller (PC) die veel geheugen heeft toegewezen.

9800WLC#show memory allocation-process totals

Controleer gelekte blokken en stukjes.

9800WLC#show memory debug leak chunks

!!This is CPU intensive cli and use only if above CLI output is not helping.

Voor IOS-geheugenpool

Controleer de bovenste allocatoren.

9800WLC#show memory io allocating-process totals

Als de bovenste allocator 'Packet Data of Pool Manager' is, controleer dan welke caller_pc om een groot aantal buffers vroeg

9800WLC#show buffers

9800WLC#show buffers usage

Als de bovenste allocator is 'mananged_chunk_process()'  of 'Chunk Manager'  proces, dan betekent het dat een of meer stukjes is/zijn het toewijzen van een grote hoeveelheid geheugen.

9800WLC#show chunk summary

9800WLC#show chunk brief

Als het proces MallocLite de belangrijkste allocator is

9800WLC#show memory lite-chunks totals

9800WLC#show memory lite-chunks stats

Geheugenlek op polis-/platformniveau oplossen

Controleer geheugengebruik % voor beschikbare geheugenbronnen op platform.

9800WLC#show Platform resources

Controleer de algemene momentopname van het systeemgeheugen.

9800WLC#show platform software process slot chassis active R0 Monitor | in Mem

Controleer alle platform processen geheugen gesorteerd.

9800WLC#show process memory platform sorted

9800WLC#show platform software process memory chassid active r0 all sorted

Controleer de status van de laatst geannuleerde oproepen.

9800WLC#show process memory platform accounting

Kies de top contender van de vorige twee CLI-uitgangen en schakel de debugs voor de afzonderlijke processen in.

9800WLC#debug platform software memory <process> chassis <1-2/active/standby> R0 alloc callsite stop

9800WLC#debug platform software memory <process> chassis <1-2/active/standby> R0 alloc callsite clear

9800WLC#debug platform software memory <process> chassis <1-2/active/standby> R0 alloc backtrace start <CALL_SITE> depth 10

9800WLC#debug platform software memory <process> chassis <1-2/active/standby> R0 alloc callsite start

!! Running these debugs has no impact to device

Verzamel de output een paar minuten (15 minuten tot een uur) na het initiëren van de debugs.

9800WLC#show platform software memory <process> chassis <1-2/active/standby> R0 alloc backtrace

!! Capture this output three times, with a 5-10 minutes interval between each capture, to identify the pattern.

Controleer op call_diff, wijst waarde toe en vrijmaakt met de respectievelijke backtrace voor elk proces.

9800WLC#show platform software memory <process> chassis <1-2/active/standby> R0 alloc callsite brief

Opmerking: call_diff = allocs - free

Als allocs = vrij, geen geheugenlek

Als frees = 0, geheugenlek

Als allocs != vrijkomt, is het mogelijk dat het geheugen lekt of niet (Als call_diff meer is, duidt dit op een grote kans op geheugenlekkage)

Leg gegevens van het databasegeheugen vast voor elk afzonderlijk proces.

9800WLC#show platform software memory <process> chassis <1-2/active/standby>active R0 alloc type data brief

9800WLC#show platform software memory database <process> chassis <1-2/active/standby> chassis active R0 brief

Controleer de informatie op het systeem om het geheugengebruik te controleren op een tijdelijk aangemaakt virtueel bestandssysteem.

9800WLC#show platform software mount

Aanbeveling

Raadpleeg de relevante configuratiehandleidingen, gegevensbladen en releaseopmerkingen voor geheugenaanbevelingen en schalinglimieten en zorg ervoor dat de WLC is bijgewerkt naar de laatst aanbevolen release.