Table des matières

Introduction

Fuite De Mémoire

Syslog

Comment identifier 9800 WLC ont connu un problème de fuite de mémoire

Dépannage des fuites de mémoire dans le processus IOS

Journaux de base du WLC

Pour le pool de mémoire du processeur

Pour pool de mémoire E/S

Dépannage des fuites de mémoire au niveau de la plate-forme Polaris

Recommandation

Introduction

Ce document décrit une fuite de mémoire dans le contexte d'un contrôleur LAN sans fil (WLC) Cisco Catalyst 9800.

Fuite De Mémoire

Lorsqu'un programme ou un processus alloue de la mémoire pour une utilisation temporaire et ne la désalloue pas correctement lorsqu'elle n'est plus nécessaire, cette mémoire reste « en cours d'utilisation » du point de vue du système d'exploitation. Lorsque le processus continue à fonctionner et échoue à plusieurs reprises à libérer la mémoire, la quantité totale de mémoire utilisée par le processus augmente et moins de mémoire est disponible pour d'autres processus et fonctions système. Les fuites de mémoire sont généralement causées par des bogues logiciels ou des problèmes dans le microprogramme du système ou dans les applications qui s'y exécutent.

Dans le cas d'un WLC Cisco Catalyst 9800, une fuite de mémoire peut se manifester comme suit :

- Diminution des performances : à mesure que la mémoire devient de plus en plus rare, le WLC peut ralentir, ce qui entraîne des temps de réponse plus lents pour les fonctions de gestion ou une baisse des performances des périphériques clients connectés au réseau.

- Instabilité du système : les processus critiques peuvent commencer à échouer, ce qui peut entraîner l'interruption des connexions client, l'incapacité à gérer le WLC ou d'autres comportements erratiques.

- Panne du système : dans les cas graves, le WLC peut se bloquer et redémarrer, surtout s'il manque de mémoire pour les opérations essentielles.

Remarque : le WLC 9800 peut connaître un redémarrage/plantage soudain pour récupérer la mémoire perdue et se rétablir. Comme la fuite de mémoire est un comportement bogué, des fuites se produisent même après le redémarrage, à moins que la fuite à l'origine de la configuration/fonctionnalité ne soit désactivée.

Syslog

%PLATFORM-4-ELEMENT_WARNING:R0/0: smand: La valeur de mémoire utilisée RP/0 91% dépasse le niveau d'avertissement 88%

Ce message imprime le nom des 3 principaux processus consommant de la mémoire avec les appels traceky, callsite ID et diff :

%PLATFORM-4-ELEMENT_WARNING : Châssis 1 R0/0 : smand : 1/RP/0 : la valeur de mémoire utilisée 91 % dépasse le niveau d'avertissement 88 %. Les principaux allocateurs de mémoire sont : Process : sessmgrd_rp_0. Clé de suivi : 1#258b8858a63c7998252e96352473c9c6 ID du site d'appel : 11B8F825A8768000 (diff_call: 20941). Processus : fman_fp_image_fp_0. Touche de suivi : 1#36b34d8e636a89f6397a3b12acab9706 ID du site d'appel : 1944E78DF68EC002 (diff_call: 19887). Processus : linux_iosd-imag_rp_0. Tracekey : 1#8ec74901dc8e23a44e060e69d5820ece ID du site d'appel : E2AA338E11594003 (diff_call: 13404).

Comment identifier 9800 WLC ont connu un problème de fuite de mémoire

Il est important de traiter rapidement les fuites de mémoire car elles peuvent compromettre la stabilité et la fiabilité des services réseau fournis par le WLC. Pour diagnostiquer une fuite de mémoire sur un WLC, vous pouvez utiliser diverses commandes sur l'interface de ligne de commande pour surveiller l'utilisation de la mémoire au fil du temps. Ils peuvent rechercher des processus qui utilisent une quantité croissante de mémoire sans la libérer ou des modèles qui indiquent que la mémoire n'est pas récupérée comme prévu.

Vérifiez la quantité totale de mémoire allouée à la plate-forme.

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

Vérifiez la quantité de mémoire allouée à chaque 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

Vérifiez l'utilisation des ressources, y compris la mémoire. S'il dépasse les niveaux Avertissement ou Critique, il peut indiquer une fuite de mémoire potentielle.

Utilisation de la mémoire sur le WLC 9800

Surveiller l'utilisation globale de la mémoire pour les ressources du plan de contrôle

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

Surveillez la taille de la mémoire allouée et utilisée pour les processus principaux. Si l'utilisation de la mémoire continue à augmenter alors que la mémoire libre reste fixe ou est trop faible, il y a de fortes chances qu'il y ait une fuite de mémoire au niveau de l'IOSd.

Statistiques de mémoire par processus à partir du processus de mise en attente le plus élevé

Pour les problèmes de fuite de mémoire au niveau de la plate-forme, surveillez les compteurs RSS (Resident Set Size). RSS indique la quantité de mémoire allouée à un processus pendant l'exécution. Si cette valeur augmente rapidement, cela peut signifier une fuite de mémoire potentielle.

La plate-forme traite l'utilisation de la mémoire à partir du processus le plus élevé

Dépannage des fuites de mémoire dans le processus IOS

Dans IOS XE, IOS fonctionne comme un processus (démon) s'exécutant sur le noyau Linux, appelé IOSd. En général, IOSd est alloué entre 35 % et 50 % de la DRAM totale de la plate-forme disponible.

Journaux de base du WLC

Activez l'horodatage pour avoir une référence temporelle pour toutes les commandes.

9800WLC#term exec prompt timestamp

Pour consulter les informations relatives à la configuration et à la mémoire :

9800WLC#show tech-support wireless

9800WLC#show tech-support memory

Collecter le fichier Core Dump ou le rapport système s'il est généré

Via GUI

Naviguer jusqu'à Troubleshooting > Core Dumps and System Report

Rapport sur le vidage et le système principal

Via CLI

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

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

Pour le pool de mémoire du processeur

Vérifier la mémoire par processus en commençant par le processus de mise en attente le plus élevé.

9800WLC#show process memory sorted

Vérifiez l'état total de la mémoire pour le pool concerné. Il affiche également le plus grand bloc libre et la mémoire disponible la plus faible depuis le démarrage.

9800WLC#show memory Statistics

Vérifiez le compteur de programme (PC) qui a alloué une grande quantité de mémoire.

9800WLC#show memory allocation-process totals

Vérifier les blocs et les morceaux qui fuient.

9800WLC#show memory debug leak chunks

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

Pour pool de mémoire E/S

Vérifiez les principaux allocateurs.

9800WLC#show memory io allocating-process totals

Si l'allocateur supérieur est 'Packet Data ou Pool Manager' , vérifiez quel caller_pc a demandé un grand nombre de tampons

9800WLC#show buffers

9800WLC#show buffers usage

Si l'allocateur supérieur est 'mananged_chunk_process()'  ou est un 'Chunk Manager'  processus, cela signifie qu'un ou plusieurs blocs allouent une grande quantité de mémoire.

9800WLC#show chunk summary

9800WLC#show chunk brief

Si le processus MallocLite est l'allocateur principal

9800WLC#show memory lite-chunks totals

9800WLC#show memory lite-chunks stats

Dépannage des fuites de mémoire au niveau de la plate-forme Polaris

Vérifiez le % d'utilisation de la mémoire pour connaître les ressources mémoire disponibles sur la plate-forme.

9800WLC#show Platform resources

Vérifiez le snapshot de la mémoire globale du système.

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

Vérifiez tous les processus de la plate-forme triés en mémoire.

9800WLC#show process memory platform sorted

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

Vérifier l'état des sites d'appels à la dernière heure.

9800WLC#show process memory platform accounting

Choisissez le meilleur candidat parmi les deux résultats CLI précédents et activez les débogages pour les processus individuels.

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

Collectez le résultat quelques minutes (15 minutes à une heure) après le lancement des débogages.

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.

Recherchez call_diff, alloue et libère la valeur avec le backtrace respectif pour chaque processus.

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

Remarque : call_diff = allocs - frees

Si allocs = free, aucune fuite de mémoire

Si free = 0, fuite de mémoire

Si allocs != libère, peut-être ou peut-être pas une fuite de mémoire (si call_diff est plus, cela indique de fortes chances de fuite de mémoire)

Capturez les données de la mémoire de la base de données pour chaque processus.

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

Vérifiez les informations de montage du système pour vérifier l'utilisation de la mémoire pour le système de fichiers virtuel créé temporairement.

9800WLC#show platform software mount

Recommandation

Reportez-vous aux guides de configuration, aux fiches techniques et aux notes de version appropriés pour obtenir des recommandations relatives à la mémoire et aux limites d'évolutivité, et assurez-vous que le WLC est mis à niveau vers la dernière version recommandée.