Contents

Introdução

Vazamento de memória

Syslog

Como identificar se a WLC 9800 teve problemas de vazamento de memória

Troubleshooting de Vazamento de Memória no Processo do IOS

Logs básicos do WLC

Para Pool de Memória do Processador

Para Pool de Memória de E/S

Troubleshooting de Vazamento de Memória no Nível Polaris/Plataforma

Recomendação

Introdução

Este documento descreve um vazamento de memória no contexto de um Cisco Catalyst 9800 Wireless LAN Controller (WLC).

Vazamento de memória

Quando um programa ou processo aloca memória para uso temporário e não a desaloca corretamente quando não é mais necessária, essa memória permanece "em uso" da perspectiva do sistema operacional. À medida que o processo continua a operar e falha repetidamente em desalocar memória, a quantidade total de memória usada pelo processo aumenta e menos memória fica disponível para outros processos e funções do sistema. Vazamentos de memória são geralmente causados por bugs de software ou por problemas no firmware do sistema ou nos aplicativos em execução nele.

No caso de um Cisco Catalyst 9800 WLC, um vazamento de memória pode se manifestar da seguinte maneira:

- Desempenho reduzido: à medida que a memória se torna cada vez mais escassa, o WLC possivelmente fica mais lento, resultando em tempos de resposta mais lentos para as funções de gerenciamento ou redução do desempenho dos dispositivos cliente conectados à rede.

- Instabilidade do sistema: processos críticos podem começar a falhar, possivelmente levando a conexões de clientes perdidas, incapacidade de gerenciar o WLC ou outros comportamentos erráticos.

- Travamentos do sistema: em casos graves, o WLC pode travar e reiniciar, especialmente se ficar sem memória para operações essenciais.

Observação: a WLC 9800 pode passar por uma reinicialização/travamento repentino para recuperar a memória vazada e se recuperar. Como o vazamento de memória é um comportamento com bugs, os vazamentos ocorrem mesmo após a reinicialização, a menos que o vazamento que causa a configuração/o recurso seja desativado.

Syslog

%PLATFORM-4-ELEMENT_WARNING:R0/0: smand: RP/0 Valor de Memória Usada 91% excede o nível de aviso 88%

Esta mensagem imprime o nome dos 3 principais processos que consomem memória junto com as chamadas traceky, callsite ID e diff:

%PLATFORM-4-ELEMENT_WARNING: Chassi 1 R0/0: smand: 1/RP/0: O valor de memória usada 91% excede o nível de aviso 88%. Os principais alocadores de memória são: Processo: sessmgrd_rp_0. Tracekey: 1#258b8858a63c7998252e96352473c9c6 ID do local de chamada: 11B8F825A8768000 (diff_call: 20941). Processo: fman_fp_image_fp_0. Tracekey: 1#36b34d8e636a89f6397a3b12acab9706 ID do local de chamada: 1944E78DF68EC002 (diff_call: 19887). Processo: linux_iosd-image_rp_0. Tracekey: 1#8ec74901dc8e23a44e060e69d5820ece ID do local de chamada: E2AA338E11594003 (diff_call: 13404).

Como identificar se a WLC 9800 teve problemas de vazamento de memória

É importante lidar com os vazamentos de memória imediatamente, pois eles podem comprometer a estabilidade e a confiabilidade dos serviços de rede fornecidos pela WLC. Para diagnosticar um vazamento de memória em uma WLC, você pode usar vários comandos na CLI para monitorar o uso de memória ao longo do tempo. Eles podem procurar processos que estejam usando uma quantidade cada vez maior de memória sem liberá-la ou padrões que indiquem que a memória não está sendo recuperada como esperado.

Verifique quanta memória está totalmente alocada para a plataforma.

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

Verifique quanta memória está alocada para cada 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

Verifique a utilização de recursos, incluindo o uso de memória. Se ele exceder os níveis de Aviso ou Crítico, poderá indicar um possível vazamento de memória.

Utilização de memória no 9800 WLC

Monitorar o uso geral de memória para recursos do plano de controle

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

Monitore o tamanho da memória alocada e usada para os principais processos. Se o uso de memória continuar a aumentar enquanto a memória livre permanecer fixa ou for muito baixa, há uma grande chance de um vazamento de memória no nível do IOSd.

Estatísticas de memória por processo iniciando do processo de retenção mais alto

Para problemas de vazamento de memória no nível da plataforma, monitore os contadores RSS (Resident Set Size, Tamanho do conjunto residente). RSS indica a quantidade de memória alocada para um processo durante a execução. Se esse valor aumentar rapidamente, pode significar um possível vazamento de memória.

A plataforma processa o uso da memória a partir do processo de retenção mais alto

Troubleshooting de Vazamento de Memória no Processo do IOS

No IOS XE, o IOS opera como um processo (daemon) sendo executado sobre o kernel do Linux, conhecido como IOSd. Normalmente, o IOSd é alocado entre 35% a 50% do total de DRAM da plataforma disponível.

Logs básicos do WLC

Habilite timestamp para ter referência de tempo para todos os comandos.

9800WLC#term exec prompt timestamp

Para revisar as informações relacionadas à configuração e à memória:

9800WLC#show tech-support wireless

9800WLC#show tech-support memory

Coletar arquivo de despejo principal ou relatório do sistema, se gerado

Via GUI

Navegue até Troubleshooting > Core Dumps and System Report

Relatório de despejo central e do sistema

Via CLI

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

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

Para Pool de Memória do Processador

Verificar a memória por processo a partir do processo de retenção mais alto.

9800WLC#show process memory sorted

Verifique o total de estatísticas de memória para o pool em questão. Ele também mostra o maior bloco livre e a menor memória disponível desde a inicialização.

9800WLC#show memory Statistics

Verifique o contador do programa (PC) que alocou uma grande quantidade de memória.

9800WLC#show memory allocation-process totals

Verificar blocos e partes vazados.

9800WLC#show memory debug leak chunks

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

Para Pool de Memória de E/S

Verifique os principais alocadores.

9800WLC#show memory io allocating-process totals

Se o alocador superior for 'Packet Data or Pool Manager' , verifique qual caller_pc solicitou um grande número de buffers

9800WLC#show buffers

9800WLC#show buffers usage

Se o alocador superior for 'mananged_chunk_process()'  ou estiver 'Chunk Manager'  processando, isso significa que um ou mais blocos estão alocando uma grande quantidade de memória.

9800WLC#show chunk summary

9800WLC#show chunk brief

Se o processo MallocLite for o principal alocador

9800WLC#show memory lite-chunks totals

9800WLC#show memory lite-chunks stats

Troubleshooting de Vazamento de Memória no Nível Polaris/Plataforma

Verifique a % de uso de memória para os recursos de memória disponíveis na plataforma.

9800WLC#show Platform resources

Verifique o instantâneo geral da memória do sistema.

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

Verifique se a memória de todos os processos da plataforma está classificada.

9800WLC#show process memory platform sorted

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

Verificar o último status horário dos locais de chamada.

9800WLC#show process memory platform accounting

Selecione o principal candidato das duas saídas CLI anteriores e ative as depurações para os processos individuais.

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

Colete a saída alguns minutos (15 minutos a uma hora) após iniciar as depurações.

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.

Verifique call_diff, aloca e libera valor com o respectivo backtrace para cada processo.

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

Observação: call_diff = allocs - free

Se allocs = libera, nenhuma perda de memória

Se liberado = 0, vazamento de memória

Se aloca != libera, pode ou não ser vazamento de memória (Se call_diff é mais, indica altas chances de vazamento de memória)

Capturar dados da memória do banco de dados para processo individual.

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

Verifique as informações de montagem do sistema para verificar o uso de memória do sistema de arquivos virtual criado temporariamente.

9800WLC#show platform software mount

Recomendação

Consulte os guias de configuração, as fichas técnicas e as notas de versão relevantes para obter recomendações de memória e limites de escalabilidade, e verifique se a WLC está atualizada para a versão recomendada mais recente.