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 un rendimiento disminuido de los dispositivos cliente conectados a la red.
- Inestabilidad del sistema: los procesos críticos pueden empezar a fallar, lo que puede llevar a conexiones de cliente caídas, incapacidad para administrar el WLC u otros comportamientos erráticos.
- Desperfectos del sistema: En casos graves, el WLC puede posiblemente desplomarse y reiniciarse, 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: RP/0 El valor de memoria usada 91% supera el nivel de advertencia 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. Tecla de seguimiento: 1#258b8858a63c7998252e96352473c9c6 ID del sitio de llamada: 11B8F825A8768000 (diff_call: 20941). Proceso: fman_fp_image_fp_0. Tecla de seguimiento: 1#36b34d8e636a89f6397a3b12acab9706 ID del sitio de llamada: 1944E78DF68EC002 (diff_call: 19887). Proceso: linux_iosd-imag_rp_0. Tecla 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, hay una alta probabilidad de una fuga de memoria en el nivel IOSd.
Estadísticas de memoria por proceso que comienzan desde el proceso de retención más alto
Para problemas de pérdida de memoria a nivel de plataforma, monitoree los contadores RSS (Resident Set Size). 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 espera más alto
Resolución de problemas de pérdida de memoria en proceso IOS
En IOS XE, IOS funciona como un proceso (daemon) que se ejecuta en la parte superior del kernel de Linux, conocido como IOSd. Por lo general, 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 or 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 <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
Recopile el resultado unos minutos (de 15 minutos a una hora) después de iniciar las depuraciones.
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, asigna y libera valor con el respectivo backtrace para cada proceso.
9800WLC#show platform software memory <process> chassis <1-2/active/standby> R0 alloc callsite brief
Nota: call_diff = allocs - frees
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 <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 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.