Sommario

Introduzione

Perdita di memoria

Syslog

Come identificare 9800 WLC hanno riscontrato un problema di perdita di memoria

Risoluzione dei problemi di perdita di memoria nel processo IOS

Log di base da WLC

Per il pool di memoria del processore

Per pool di memoria IO

Risoluzione dei problemi di perdita di memoria a livello di piattaforma Polaris

Suggerimento

Introduzione

Questo documento descrive una perdita di memoria nel contesto di un Cisco Catalyst 9800 Wireless LAN Controller (WLC).

Perdita di memoria

Quando un programma o un processo alloca memoria per un uso temporaneo e non la dealloca correttamente quando non è più necessaria, tale memoria rimane "in uso" dal punto di vista del sistema operativo. Poiché il processo continua a funzionare e più volte non riesce a deallocare memoria, la quantità totale di memoria utilizzata dal processo aumenta e per altri processi e funzioni di sistema è disponibile una quantità inferiore di memoria. Le perdite di memoria sono in genere causate da bug del software o da problemi nel firmware del sistema o nelle applicazioni in esecuzione su di esso.

Nel caso di un Cisco Catalyst 9800 WLC, una perdita di memoria può verificarsi come segue:

- Prestazioni ridotte: con l'aumentare della memoria insufficiente, il WLC potrebbe rallentare, rallentando i tempi di risposta per le funzioni di gestione o diminuendo le prestazioni dei dispositivi client connessi alla rete.

- Instabilità del sistema: i processi critici possono iniziare a fallire, causando probabilmente l'interruzione delle connessioni client, l'impossibilità di gestire il WLC o altri comportamenti errati.

- Arresti anomali del sistema: nei casi più gravi, il WLC può bloccarsi e riavviarsi, specialmente se la memoria si esaurisce per le operazioni essenziali.

Nota: 9800 WLC può sperimentare un riavvio/arresto anomalo per recuperare la memoria perduta e recuperare se stesso. Poiché la perdita di memoria è un comportamento di bug, le perdite si verificano anche dopo il riavvio, a meno che la configurazione che causa la perdita non sia disabilitata.

Syslog

%PLATFORM-4-ELEMENT_WARNING:R0/0: smand: RP/0 Il valore della memoria utilizzata del 91% supera il livello di avviso dell'88%

Questo messaggio stampa il nome dei primi tre processi che utilizzano molta memoria insieme alle chiamate trackey, callsite ID e diff:

%PLATFORM-4-ELEMENT_WARNING: Chassis 1 R0/0: smand: 1/RP/0: Il valore di memoria utilizzata del 91% supera il livello di avviso dell'88%. I primi allocatori di memoria sono: Processo: sessmgrd_rp_0. Tracekey: 1#258b8858a63c7998252e96352473c9c6 Callsite ID: 11B8F825A8768000 (diff_call: 20941). Processo: fman_fp_image_fp_0. Tracekey: 1#36b34d8e636a89f6397a3b12acab9706 ID callsite: 1944E78DF68EC002 (diff_call: 19887). Processo: linux_iosd-image_rp_0. Tracekey: 1#8ec74901dc8e23a44e060e69d5820ece ID callsite: E2AA338E11594003 (diff_call: 13404).

Come identificare 9800 WLC hanno riscontrato un problema di perdita di memoria

È importante risolvere tempestivamente le perdite di memoria in quanto possono compromettere la stabilità e l'affidabilità dei servizi di rete forniti dal WLC. Per diagnosticare una perdita di memoria su un WLC, è possibile usare vari comandi della CLI per monitorare l'utilizzo della memoria nel tempo. Possono cercare processi che utilizzano una quantità crescente di memoria senza rilasciarla oppure modelli che indicano che la memoria non viene recuperata come previsto.

Verificare la quantità di memoria completamente allocata alla piattaforma.

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

Controllare la quantità di memoria allocata a ogni 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

Controllare l'utilizzo delle risorse, incluso l'utilizzo della memoria. Se supera i livelli Warning (Avvertenza) o Critical (Critica), può indicare una potenziale perdita di memoria.

Utilizzo della memoria su 9800 WLC

Monitoraggio dell'utilizzo complessivo della memoria per le risorse del control plane

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

Monitorare le dimensioni della memoria allocata e utilizzata per i primi processi. Se l'utilizzo della memoria continua ad aumentare mentre la memoria libera rimane fissa o è troppo bassa, vi sono elevate probabilità di una perdita di memoria a livello di IOSd.

Statistiche della memoria per processo a partire dal processo di memorizzazione più elevato

Per problemi di perdita di memoria a livello di piattaforma, monitorare i contatori RSS (Resident Set Size). RSS indica la quantità di memoria allocata a un processo durante l'esecuzione. Se questo valore aumenta rapidamente, è possibile che si verifichi una perdita di memoria.

La piattaforma elabora l'utilizzo della memoria dal processo di attesa più elevato

Risoluzione dei problemi di perdita di memoria nel processo IOS

In IOS XE, IOS opera come un processo (daemon) in esecuzione sul kernel Linux, noto come IOSd. In genere, IOSd è assegnato tra il 35% e il 50% della DRAM totale disponibile per piattaforma.

Log di base da WLC

Abilitare l'opzione Timestamp per avere un riferimento temporale per tutti i comandi.

9800WLC#term exec prompt timestamp

Per esaminare le informazioni relative alla configurazione e alla memoria:

9800WLC#show tech-support wireless

9800WLC#show tech-support memory

Raccogli file di dump di base o report di sistema se generato

Tramite GUI

Passa a Troubleshooting > Core Dumps and System Report

Report sul dump e sul sistema di base

Tramite CLI

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

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

Per il pool di memoria del processore

Verifica la memoria per processo a partire dal processo di blocco più alto.

9800WLC#show process memory sorted

Controllare lo stato totale della memoria per il pool in questione. Mostra inoltre il blocco libero più grande e la memoria disponibile più bassa dall'avvio.

9800WLC#show memory Statistics

Controllare il contatore del programma (PC) che ha allocato una grande quantità di memoria.

9800WLC#show memory allocation-process totals

Controllare blocchi e blocchi persi.

9800WLC#show memory debug leak chunks

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

Per pool di memoria IO

Controllare i primi allocatori.

9800WLC#show memory io allocating-process totals

Se l'allocatore principale è 'Packet Data or Pool Manager', verificare quale caller_pc ha richiesto un numero elevato di buffer

9800WLC#show buffers

9800WLC#show buffers usage

Se l'allocatore superiore è 'mananged_chunk_process()'  o 'Chunk Manager'  elabora, significa che uno o più blocchi stanno allocando una grande quantità di memoria.

9800WLC#show chunk summary

9800WLC#show chunk brief

Se il processo MallocLite è l'allocatore principale

9800WLC#show memory lite-chunks totals

9800WLC#show memory lite-chunks stats

Risoluzione dei problemi di perdita di memoria a livello di piattaforma Polaris

Verificare l'utilizzo di memoria % per le risorse di memoria disponibili sulla piattaforma.

9800WLC#show Platform resources

Controllare lo snapshot complessivo della memoria di sistema.

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

Controllare tutti i processi della piattaforma ordinati in base alla memoria.

9800WLC#show process memory platform sorted

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

Controlla lo stato dell'ultima ora dei siti chiamate.

9800WLC#show process memory platform accounting

Selezionare il contendente principale dai due output CLI precedenti e abilitare i debug per i singoli processi.

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

Raccogliere l'output pochi minuti (da 15 minuti a un'ora) dopo l'avvio dei debug.

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.

Verificare la presenza di call_diff, alloca e libera il valore con la rispettiva backtrace per ogni processo.

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

Nota: call_diff = allocs - frees

Se allocs = frees, nessuna perdita di memoria

Se liberazioni = 0, la perdita di memoria

Se allocs != libera, è possibile che si verifichi o meno una perdita di memoria (se call_diff è maggiore, è possibile che si verifichino perdite di memoria)

Acquisire i dati della memoria del database per il singolo processo.

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

Controllare le informazioni sul montaggio del sistema per verificare l'utilizzo della memoria per il file system virtuale creato temporaneamente.

9800WLC#show platform software mount

Suggerimento

Per i consigli sulla memoria e i limiti di scalabilità, consultare le guide alla configurazione, i data sheet e le note di rilascio pertinenti e verificare che il WLC sia aggiornato alla versione più recente consigliata.