Introducción
Este documento describe una pérdida de memoria en el contexto de un controlador de LAN inalámbrica (WLC) Cisco Catalyst 9800.
Pérdida de memoria
Cuando un programa o proceso asigna memoria para uso temporal y no la desasigna correctamente cuando ya no se necesita, esa memoria permanece en uso desde la perspectiva del sistema operativo. A medida que el proceso continúa funcionando y falla repetidamente en la desasignación de memoria, la cantidad total de memoria utilizada por el proceso aumenta y hay menos memoria disponible para otros procesos y funciones del sistema. Las pérdidas de memoria suelen estar causadas por errores de software o problemas en el firmware del sistema o las aplicaciones que se ejecutan en él.
En el caso de un Cisco Catalyst 9800 WLC, una pérdida de memoria puede manifestarse de la siguiente manera:
- Menor rendimiento: A medida que la memoria se vuelve cada vez más escasa, el WLC posiblemente se ralentiza, lo que resulta en tiempos de respuesta más lentos para las funciones de administración o rendimiento disminuido de los dispositivos cliente conectados a la red.
- Inestabilidad del sistema: Los procesos críticos pueden comenzar a fallar, lo que posiblemente lleve a conexiones de cliente caídas, incapacidad para administrar el WLC u otros comportamientos erráticos.
- Desperfectos del sistema: En casos severos, el WLC puede posiblemente estrellarse y reiniciar, especialmente si se queda sin memoria para las operaciones esenciales.
Nota: 9800 WLC puede experimentar un reinicio/desperfecto repentino para reclamar la memoria filtrada y recuperarse. Debido a que la pérdida de memoria es un comportamiento irregular, las fugas ocurren incluso después del reinicio a menos que la configuración/función causante de la fuga esté inhabilitada.
Syslog
%PLATFORM-4-ELEMENT_WARNING:R0/0: smand: El valor de memoria usada RP/0 del 91% supera el nivel de advertencia del 88%
Este mensaje imprime el nombre de los 3 procesos que más memoria consumen junto con el seguimiento, el ID del sitio de llamada y las llamadas diff:
%PLATFORM-4-ELEMENT_WARNING: Chasis 1 R0/0: smand: 1/RP/0: El valor de memoria usada 91% supera el nivel de advertencia 88%. Los principales asignadores de memoria son: Proceso: sessmgrd_rp_0. Clave de seguimiento: 1#258b8858a63c7998252e96352473c9c6 ID del sitio de llamada: 11B8F825A8768000 (diff_call: 20941). Proceso: fman_fp_image_fp_0. Clave de seguimiento: 1#36b34d8e636a89f6397a3b12acab9706 ID del sitio de llamada: 1944E78DF68EC002 (diff_call: 19887). Proceso: linux_Cisco IOSd-imag_rp_0. Clave de seguimiento: 1#8ec74901dc8e23a44e060e69d5820ece ID del sitio de llamada: E2AA338E11594003 (diff_call: 13404).
Cómo identificar 9800 WLC han experimentado problema de pérdida de memoria
Es importante abordar las fugas de memoria rápidamente ya que pueden comprometer la estabilidad y la confiabilidad de los servicios de red proporcionados por el WLC. Para diagnosticar una pérdida de memoria en un WLC, puede utilizar varios comandos en la CLI para monitorear el uso de la memoria a lo largo del tiempo. Pueden buscar procesos que estén utilizando una cantidad creciente de memoria sin liberarla o patrones que indiquen que la memoria no se está recuperando como se esperaba.
Compruebe cuánta memoria está totalmente asignada a la 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
Compruebe cuánta memoria se asigna a cada conjunto.
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
Compruebe la utilización de recursos, incluido el uso de memoria. Si supera los niveles de advertencia o crítico, puede indicar una posible pérdida de memoria.
Utilización de memoria en 9800 WLC
Supervisar el uso general de la memoria para los recursos del plano de control
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%)
Supervise el tamaño de memoria asignada y utilizada para los procesos principales. Si el uso de memoria continúa aumentando mientras la memoria libre permanece fija o es demasiado baja, existe una alta probabilidad de una pérdida de memoria en el nivel de Cisco IOSd.
Estadísticas de memoria por proceso que comienzan desde el proceso de retención más alto
Para los problemas de pérdida de memoria a nivel de plataforma, monitoree los contadores de tamaño de conjunto residente (RSS). RSS indica la cantidad de memoria asignada a un proceso durante la ejecución. Si este valor aumenta rápidamente, podría significar una posible pérdida de memoria.
La plataforma procesa el uso de memoria desde el proceso de retención más alto
Resolución de problemas de pérdida de memoria en el proceso de Cisco IOS®
En Cisco IOS XE, Cisco IOS funciona como un proceso (daemon) que se ejecuta en la parte superior del kernel de Linux, conocido como Cisco IOSd. Por lo general, Cisco IOSd se asigna entre el 35% y el 50% de la DRAM total disponible de la plataforma.
Registros básicos de WLC
Active timestamp para tener una referencia de tiempo para todos los comandos.
9800WLC#term exec prompt timestamp
Para revisar la información relacionada con la memoria y la configuración:
9800WLC#show tech-support wireless
9800WLC#show tech-support memory
Recopile el archivo de volcado de memoria o el informe del sistema si se genera.
Mediante GUI
Vaya a Troubleshooting > Core Dumps and System Report
.
Vaciado de memoria e informe del sistema
Mediante CLI
9800WLC#show bootflash: | in core/system-report
9800WLC#copy bootflash:system-report/Core_file {tftp: | ftp: | https: ..}
Para conjunto de memoria del procesador
Compruebe la memoria por proceso comenzando desde el proceso de espera más alto.
9800WLC#show process memory sorted
Verifique las estadísticas de memoria total para el conjunto en cuestión. También muestra el bloque libre más grande y la memoria disponible más baja desde el inicio.
9800WLC#show memory Statistics
Compruebe el contador de programas (PC) que asignó una gran cantidad de memoria.
9800WLC#show memory allocation-process totals
Revise los bloques y trozos filtrados.
9800WLC#show memory debug leak chunks
!!This is CPU intensive cli and use only if above CLI output is not helping.
Para conjunto de memoria de E/S
Compruebe los principales asignadores.
9800WLC#show memory io allocating-process totals
Si el principal asignador es Packet Data o Pool Manager , verifique qué caller_pc solicitó un gran número de búferes.
9800WLC#show buffers
9800WLC#show buffers usage
Si la asignación superior es mananged_chunk_process()
o Chunk Manager
proceso, significa que uno o más fragmentos están asignando una gran cantidad de memoria.
9800WLC#show chunk summary
9800WLC#show chunk brief
Si el proceso MallocLite es el mejor asignador.
9800WLC#show memory lite-chunks totals
9800WLC#show memory lite-chunks stats
Resolución de problemas de pérdida de memoria a nivel de plataforma/Polaris
Verifique el uso de memoria % para los recursos de memoria disponibles en la plataforma.
9800WLC#show Platform resources
Compruebe la instantánea general de la memoria del sistema.
9800WLC#show platform software process slot chassis active R0 Monitor | in Mem
Verifique todos los procesos de plataforma de memoria ordenados.
9800WLC#show process memory platform sorted
9800WLC#show platform software process memory chassid active r0 all sorted
Comprobar el último estado por hora de los sitios de llamadas.
9800WLC#show process memory platform accounting
Elija el primer competidor de las dos salidas CLI anteriores y habilite las depuraciones para los procesos individuales.
9800WLC#debug platform software memory
chassis <1-2/active/standby> R0 alloc callsite stop
9800WLC#debug platform software memory
chassis <1-2/active/standby> R0 alloc callsite clear
9800WLC#debug platform software memory
chassis <1-2/active/standby> R0 alloc backtrace start
depth 10
9800WLC#debug platform software memory
chassis <1-2/active/standby> R0 alloc callsite start
!! Running these debugs has no impact to device
Recopile el resultado unos minutos (de 15 minutos a una hora) después de iniciar las depuraciones.
9800WLC#show platform software memory
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, asigna y libera valor con el respectivo backtrace para cada proceso.
9800WLC#show platform software memory
chassis <1-2/active/standby> R0 alloc callsite brief
Nota: call_diff = allocs - free
Si allocs = libera, no hay pérdida de memoria
Si libera = 0, pérdida de memoria
Si allocs != libera, tal vez o tal vez no sea pérdida de memoria (Si call_diff es más, indica altas posibilidades de fuga de memoria)
Capturar datos de la memoria de la base de datos para procesos individuales.
9800WLC#show platform software memory
chassis <1-2/active/standby>active R0 alloc type data brief
9800WLC#show platform software memory database
chassis <1-2/active/standby> chassis active R0 brief
Verifique la información de montaje del sistema para verificar el uso de memoria para el sistema de archivos virtual creado temporalmente.
9800WLC#show platform software mount
Recomendación
Refiérase a las guías de configuración, hojas de datos y notas de la versión relevantes para conocer las recomendaciones de memoria y los límites de escalado, y asegúrese de que el WLC se actualice a la última versión recomendada.
Información Relacionada