Table des matières

Introduction

Description du problème

Analyse

Solution

Procédure

Introduction

Ce document décrit la solution pour les instances sessmgr qui passent en état WARN en raison de acsmgr_icsr_frwk_instance_chkpt_falied() utilisation du processus.

Description du problème

Plate-forme ASR5500

Version du logiciel : 21.27.4 et 21.19.10

Instances du gestionnaire de session en état d'avertissement en raison d'une consommation de mémoire élevée sur  acsmgr_icsr_frwk_instance_chkpt_falied()  fonction lorsque la récupération de session est désactivée :

[local]ASR5500# show task resources | grep -v good

task   cputime        memory     files      sessions

cpu facility      inst  used  allc   used  alloc used allc  used  allc S status

----------------------- ----------- ------------- --------- ------------- ------

1/0 sessmgr         13   26%  100% 930.8M 900.0M   37  500  4643 12000 I   warn

1/0 sessmgr         36   32%  100% 938.8M 900.0M   39  500  5155 12000 I   warn

1/0 sessmgr         53   29%  100% 937.8M 900.0M   40  500  4916 12000 I   warn

1/0 sessmgr         56   29%  100% 930.2M 900.0M   41  500  4649 12000 I   warn

1/0 sessmgr         83   35%  100% 970.2M 900.0M   40  500  5382 12000 I   warn

1/0 sessmgr         90   24%  100% 931.3M 900.0M   42  500  4621 12000 I   warn

1/0 sessmgr        130   28%  100% 935.0M 900.0M   40  500  4907 12000 I   warn

1/0 sessmgr        141   26%  100% 936.7M 900.0M   37  500  4917 12000 I   warn

1/0 sessmgr        145   23%  100% 933.9M 900.0M   39  500  4883 12000 I   warn

1/0 sessmgr        174   26%  100% 927.4M 900.0M   37  500  4620 12000 I   warn

1/0 sessmgr        188   31%  100% 963.0M 900.0M   40  500  5305 12000 I   warn

1/0 sessmgr        223   26%  100% 933.5M 900.0M   38  500  4631 12000 I   warn

Aggregate consumption per proc:

-------- ------------------------------------------ -------------- -------------- -------------- --------- ---------

| Nr     |                 Process                  |   Similar    | Total Bytes  | Human Bytes  | Percent | % Acum  |

======== ========================================== ============== ============== ============== ========= =========

| 1      | acsmgr_icsr_frwk_instance_chkpt_falied() |          757 |    108301860 |     103.3 MB |  13.95% |  13.95% |

| 2      | egtpc_allocate_peer_rec()                |           89 |     77599472 |      74.0 MB |  10.00% |  23.95% |

| 3      | sn_slist_dnode_alloc()                   |          471 |     64427392 |      61.4 MB |   8.30% |  32.25% |

| 4      | sessmgr_allocate_callline()              |          156 |     48601944 |      46.4 MB |   6.26% |  38.51% |

| 5      | sn_aaa_buffer_alloc_more_type()          |           45 |     34836120 |      33.2 MB |   4.49% |  43.00% |

[local]ASR5500# show task resources | grep -v good

Session Recovery Status:

Overall Status : Not Enabled

Last Status Update : 8 seconds ago

Analyse

Afin d'isoler si le nombre élevé d'abonnés totaux déclenche le processus acsmgr_icsr_frwk_instance_chkpt_falied() pour être surutilisé, une instance sessmgr occupée est exécutée et il est confirmé que l'utilisation de la mémoire sessmgr n'a pas diminué :

[local]ASR5500> show task resources facility sessmgr instance 10

task   cputime        memory     files      sessions

cpu facility      inst  used  allc   used  alloc used allc  used  allc S status

----------------------- ----------- ------------- --------- ------------- ------

8/0 sessmgr         10   20%  100% 981.8M 900.0M   43  500  4142 12000 I   warn

Total                 1  20.20%    981.8M            43         4142

[local]ASR5500> task sessmgr instance 10 busy-out

[local]ASR5500> show task resources facility sessmgr instance 10

task   cputime        memory     files      sessions

cpu facility      inst  used  allc   used  alloc used allc  used  allc S status

----------------------- ----------- ------------- --------- ------------- ------

8/0 sessmgr         10   19%  100% 979.7M 900.0M   42  500  3946 12000 B   warn

Total                 1  19.35%    979.7M            42         3946

[local]ASR5500> task sessmgr instance 10 enable

[local]ASR5500> show task resources facility sessmgr instance 10

task   cputime        memory     files      sessions

cpu facility      inst  used  allc   used  alloc used allc  used  allc S status

----------------------- ----------- ------------- --------- ------------- ------

8/0 sessmgr         10   17%  100% 979.8M 900.0M   40  500  4141 12000 I   warn

Total                 1  17.33%    979.8M            40         4141

À partir des journaux, lorsqu'un état occupé est exécuté sur l'une des instances sessmgr affectées, il diminue le nombre de sessions utilisées, mais l'allocation de mémoire utilisée reste élevée et indique que l'instance sessmgr est à l'état WARN.

À la suite d'une enquête, acsmgr_icsr_frwk_instance_chkpt_falied()est appelée pendant le traitement des informations de point de contrôle. Il y a des opérations d'ajout/mise à jour/suppression de listes dans cette fonction qui ne fonctionnent pas comme prévu quand la récupération de session est désactivée et c'est la raison de la consommation accrue de mémoire. La mémoire utilisée ici est accumulée dans ce scénario au fil du temps. Ce comportement se produit uniquement dans le scénario où le require session recovery n'est pas configuré. La mémoire accumulée à traiter  acsmgr_icsr_frwk_instance_chkpt_falied() ne se libère pas lorsque (no require session recovery) qui peut être à l'origine de la fuite."

Solution

Mettez en oeuvre la récupération de session afin de résoudre ce problème.

Procédure

Étape 1. À l'invite du mode d'exécution, vérifiez que la fonction de récupération de session est activée via les licences d'utilisation de session et de fonctionnalité sur le système avec le show license info erasecat4000_flash:. Si l'état actuel de la fonctionnalité Récupération de session est Désactivé, vous ne pouvez pas activer cette fonctionnalité tant qu'une clé de licence n'est pas installée dans le système.

Étape 2. Utilisez cet exemple de configuration pour activer la récupération de session.

configure

require session recovery

end

Cette fonction n'est effective qu'après le redémarrage du système.

Étape 3. Enregistrez votre configuration comme décrit dans Vérification et enregistrement de votre configuration.

Étape 4. Redémarrez le système à l'aide de reload erasecat4000_flash:. Voici l'invite qui s'affiche :

Are you sure? [Yes|No]:

Confirmez votre souhait d'effectuer un redémarrage du système et entrez Yes.

Une fois redémarré, le système active la récupération de session et crée toutes les tâches en mode veille mises en miroir, effectue automatiquement les réservations de cartes de traitement des paquets et d'autres opérations.

Étape 5. Une fois le système redémarré, vous devez vérifier la préparation du système pour la prise en charge de cette fonctionnalité, comme décrit dans Affichage de l'état de récupération de session. Les utilisateurs plus avancés peuvent choisir d'insérer le require session recovery dans un fichier de configuration qui existe déjà avec un éditeur de texte ou d'autres moyens, puis appliquez manuellement le fichier de configuration. Soyez prudent lorsque vous faites cela, afin de vous assurer que cette commande est placée parmi les premières lignes de tout fichier de configuration qui existe déjà ; elle doit apparaître avant la création de tout contexte non local.