Inhalt

Einleitung

Speicherleck

Syslog

Identifizierung von Speicherverlusten beim 9800 WLC

Fehlerbehebung: Speicherleck im IOS-Prozess

Grundlegende Protokolle von WLC

Für Prozessorspeicherpool

Für IO-Speicherpool

Fehlerbehebung Speicherleck auf Polaris-/Plattformebene

Empfehlung

Einleitung

Dieses Dokument beschreibt ein Speicherleck im Zusammenhang mit einem Cisco Catalyst 9800 Wireless LAN Controller (WLC).

Speicherleck

Weist ein Programm oder Prozess Speicher für die vorübergehende Verwendung zu und gibt ihn nicht korrekt frei, wenn er nicht mehr benötigt wird, bleibt dieser Speicher aus Sicht des Betriebssystems "belegt". Wenn der Prozess weiterläuft und wiederholt keinen Speicher freizugeben vermag, wächst die vom Prozess insgesamt genutzte Speichermenge, und für andere Prozesse und Systemfunktionen steht weniger Speicher zur Verfügung. Speicherlecks werden normalerweise durch Softwarefehler oder Probleme in der System-Firmware oder den darauf ausgeführten Anwendungen verursacht.

Bei einem Cisco Catalyst 9800 WLC kann sich ein Speicherleck wie folgt manifestieren:

- Verringerte Leistung: Da immer mehr Arbeitsspeicher knapp wird, verlangsamt sich der WLC möglicherweise, was zu langsameren Reaktionszeiten bei Managementfunktionen oder einer geringeren Leistung der mit dem Netzwerk verbundenen Client-Geräte führt.

- Systeminstabilität: Kritische Prozesse können zu Fehlern führen und möglicherweise dazu, dass Clientverbindungen unterbrochen werden, der WLC nicht verwaltet werden kann oder andere unberechenbare Verhaltensweisen auftreten.

- Systemabstürze: In schwerwiegenden Fällen kann der WLC abstürzen und neu starten, insbesondere wenn nicht genügend Arbeitsspeicher für wichtige Vorgänge zur Verfügung steht.

Hinweis: Bei 9800 WLC kann es zu einem plötzlichen Neustart/Absturz kommen, um den ausgelaufenen Speicher zurückzugewinnen und sich selbst wiederherzustellen. Da ein Speicherleck ein fehlerhaftes Verhalten ist, treten Lecks auch nach einem Neustart auf, es sei denn, das Leck, das die Konfiguration/Funktion verursacht, ist deaktiviert.

Syslog

%PLATFORM-4-ELEMENT_WARNUNG:R0/0: smand: Verwendeter RP/0-Speicherwert 91 % überschreitet Warnstufe 88 %

Diese Meldung druckt den Namen des Prozesses mit den drei höchsten Speicherbelegungen zusammen mit dem Ablaufverfolgungsschlüssel, der Anrufstandort-ID und Diff-Aufrufen:

%PLATFORM-4-ELEMENT_WARNUNG: Chassis 1 R0/0: smand: 1/RP/0: Gebrauchter Speicherwert 91 % überschreitet den Warnwert 88 %. Die wichtigsten Speicherzuweisungen sind: Prozess: sessmgrd_rp_0. Tracekey: 1#258b8858a63c7998252e96352473c9c6, Anrufstandort-ID: 11B8F825A8768000 (diff_call: 20941). Prozess: fman_fp_image_fp_0. Tracekey: 1#36b34d8e636a89f6397a3b12acab9706, Anrufstandort-ID: 1944E78DF68EC002 (diff_call: 19887) Prozess: linux_iosd-imag_rp_0. Tracekey: 1#8ec74901dc8e23a44e060e69d5820ece, Anrufstandort-ID: E2AA338E11594003 (diff_call: 13404).

Identifizierung von Speicherverlusten beim 9800 WLC

Speicherlecks müssen schnell behoben werden, da sie die Stabilität und Zuverlässigkeit der vom WLC bereitgestellten Netzwerkdienste beeinträchtigen können. Um ein Speicherleck auf einem WLC zu diagnostizieren, können Sie verschiedene Befehle in der CLI verwenden, um die Speichernutzung über einen längeren Zeitraum zu überwachen. Möglicherweise suchen sie nach Prozessen, die eine zunehmende Speichermenge nutzen, ohne sie freizugeben, oder nach Mustern, die darauf hinweisen, dass Speicher nicht wie erwartet wiederhergestellt wird.

Überprüfen Sie, wie viel Speicher der Plattform insgesamt zugewiesen ist.

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

Überprüfen Sie, wie viel Speicher jedem Pool zugewiesen ist.

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

Überprüfen Sie die Ressourcennutzung, einschließlich der Speichernutzung. Wenn der Wert die Warnstufe oder die Stufe Kritisch überschreitet, kann dies auf ein potenzielles Speicherleck hinweisen.

Speichernutzung auf 9800 WLC

Überwachung der gesamten Speichernutzung für Ressourcen auf Kontrollebene

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%)

Überwachen Sie die zugewiesene und verwendete Speichergröße für die Hauptprozesse. Wenn die Speichernutzung weiter zunimmt, während der freie Speicher unverändert bleibt oder zu niedrig ist, besteht auf IOSd-Ebene eine hohe Wahrscheinlichkeit eines Speicherverlusts.

Speicherstatistiken pro Prozess, beginnend mit dem höchsten Halteprozess

Bei Speicherverlusten auf Plattformebene sollten Sie die RSS-Zähler (Resident Set Size) überwachen. RSS gibt die Speichermenge an, die einem Prozess während der Ausführung zugewiesen wurde. Wenn dieser Wert schnell ansteigt, kann dies auf ein potenzielles Speicherleck hinweisen.

Die Plattform verarbeitet die Speichernutzung aus dem Prozess mit der höchsten Speicherkapazität.

Fehlerbehebung: Speicherleck im IOS-Prozess

In IOS XE arbeitet IOS als ein Prozess (Daemon), der auf dem Linux-Kernel ausgeführt wird, der als IOSd bezeichnet wird. In der Regel wird IOSd zwischen 35 % und 50 % des insgesamt verfügbaren Plattform-DRAMs zugewiesen.

Grundlegende Protokolle von WLC

Aktivieren Sie Zeitstempel, um eine Zeitreferenz für alle Befehle zu erhalten.

9800WLC#term exec prompt timestamp

So überprüfen Sie die Konfiguration und die speicherbezogenen Informationen:

9800WLC#show tech-support wireless

9800WLC#show tech-support memory

Sammeln der Core Dump-Datei oder des Systemberichts, falls generiert

Über GUI

Navigation nach Troubleshooting > Core Dumps and System Report

Bericht zu Core Dump und System

Über CLI

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

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

Für Prozessorspeicherpool

Prüfen Sie den Speicher pro Prozess ab dem höchsten Haltevorgang.

9800WLC#show process memory sorted

Überprüfen Sie die Gesamtspeicherstatistiken für den betreffenden Pool. Außerdem werden der größte freie Block und der niedrigste verfügbare Speicher seit dem Start angezeigt.

9800WLC#show memory Statistics

Überprüfen Sie den Programmzähler (PC), der eine große Speichermenge zugewiesen hat.

9800WLC#show memory allocation-process totals

Überprüfen Sie undichte Blöcke und Blöcke.

9800WLC#show memory debug leak chunks

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

Für IO-Speicherpool

Prüfen Sie die obersten Zuteilungen.

9800WLC#show memory io allocating-process totals

Wenn der oberste Zuweiser 'Paketdaten oder Pool-Manager' ist, prüfen Sie, welcher caller_pc eine große Anzahl von Puffern angefordert hat.

9800WLC#show buffers

9800WLC#show buffers usage

Wenn die oberste Zuweisung 'mananged_chunk_process()'  oder der oberste 'Chunk Manager'  Prozess erfolgt, bedeutet dies, dass ein oder mehrere Blöcke eine große Speichermenge zuweisen.

9800WLC#show chunk summary

9800WLC#show chunk brief

Wenn der Prozess MallocLite ist der Top-Allocator

9800WLC#show memory lite-chunks totals

9800WLC#show memory lite-chunks stats

Fehlerbehebung Speicherleck auf Polaris-/Plattformebene

Überprüfen Sie die Speichernutzung % auf verfügbare Speicherressourcen auf der Plattform.

9800WLC#show Platform resources

Überprüfen Sie den gesamten Systemspeicher-Snapshot.

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

Überprüfen Sie alle Plattformprozesse nach Speicher sortiert.

9800WLC#show process memory platform sorted

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

Überprüfen Sie den Status der Anrufstandorte für die letzte Stunde.

9800WLC#show process memory platform accounting

Wählen Sie aus den beiden vorherigen CLI-Ausgaben den oberen Contender aus, und aktivieren Sie die Debugging-Funktionen für die einzelnen Prozesse.

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

Erfassen Sie die Ausgabe einige Minuten (15 Minuten bis eine Stunde) nach dem Initiieren der Fehlersuche.

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.

Überprüfen Sie, ob call_diff vorhanden ist, und weisen Sie den Wert mit dem entsprechenden Backtrace für jeden Prozess zu bzw. geben Sie ihn frei.

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

Hinweis: call_diff = allocs - free

Wenn allocs = frees, kein Speicherleck

Wenn Frei = 0, Speicherleck

Wenn Allocs != frei sind, vielleicht oder vielleicht nicht, ein Speicherleck sein (Wenn call_diff mehr ist, weist dies auf hohe Wahrscheinlichkeit eines Speicherlecks hin)

Erfassen von Daten des Datenbankspeichers für einen einzelnen Prozess.

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

Überprüfen Sie die Systembereitstellungsinformationen, um die Speichernutzung für das temporär erstellte virtuelle Dateisystem zu überprüfen.

9800WLC#show platform software mount

Empfehlung

Empfehlungen zu Arbeitsspeicher und Skalierungsbeschränkungen finden Sie in den entsprechenden Konfigurationsanleitungen, Datenblättern und Versionshinweisen. Stellen Sie sicher, dass der WLC auf die neueste empfohlene Version aktualisiert wird.