Sommario

Introduzione

Panoramica

Registri/Controlli di base

Controlli di base

Log

Analisi

Piano d'azione

Scenario 1. A causa dell'utilizzo elevato della memoria

Scenario 2. A causa dell'elevato utilizzo della CPU

Introduzione

Questo documento descrive come risolvere i problemi relativi a sessmgr o aamgr con stato "avviso" o "su".

Panoramica

Gestione sessioni (Sessmgr) - Sistema di elaborazione del sottoscrittore che supporta più tipi di sessione ed è responsabile della gestione delle transazioni del sottoscrittore. Sessmgr è in genere abbinato ad AAManagers.

Authorization, Authentication, and Accounting Manager (Aamgr) - È responsabile dell'esecuzione di tutte le operazioni e le funzioni del protocollo AAA per gli abbonati e gli utenti amministrativi del sistema.

Figura 1 :: distribuzione delle risorse Staros

Registri/Controlli di base

Controlli di base

Per ottenere ulteriori dettagli sul problema, è necessario verificare queste informazioni con l'utente:

1. Da quanto tempo il sessmgr/aamgr è in stato di "avvertenza" o di "superamento"?

2. Quanti sessmgrs/aamgrs sono interessati da questo problema?

3. È necessario verificare se sessmgr/aamgr è nello stato "warn" o "over" a causa della memoria o della CPU.

4. Inoltre, è necessario verificare se si è verificato un aumento improvviso del traffico, che può essere valutato esaminando il numero di sessioni per session mgr.

Ottenendo queste informazioni, è possibile comprendere e risolvere al meglio il problema in questione.

Log

1. Ottenere Show Support Details (SSD) e syslog per acquisire il timestamp problematico. Si consiglia di raccogliere questi registri almeno 2 ore prima dell'inizio del problema per identificare il punto di attivazione.

2. Acquisire i corefile per sessmgr/aamgr con e senza problemi. Per ulteriori informazioni su questo argomento, vedere la sezione Analisi.

Analisi

Passaggio 1. Per controllare lo stato di sessmgr/aamgr interessato tramite i comandi.

show task resources         -

--------- to check detail of sessmgr/aamgr into warn/over state and from the same you also get to know current memory/cpu utlization

Output ::

******** show task resources *******

Monday May 29 08:30:54 IST 2023

task          cputime      memory         files      sessions

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

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

2/0 sessmgr  297  6.48% 100% 604.8M 900.0M  210 500     1651 12000   I     good

2/0 sessmgr  300  5.66% 100% 603.0M 900.0M  224 500     1652 12000   I     good

2/1 aaamgr   155  0.90% 95%  96.39M 260.0M   21 500     -- --        -     good

2/1 aaamgr   170  0.89% 95%  96.46M 260.0M   21 500     -- --        -     good

Nota: il numero di sessioni per sessmgr può essere controllato da questo comando, come mostrato nell'output del comando.

Entrambi questi comandi consentono di controllare l'utilizzo massimo della memoria da quando il nodo è stato ricaricato:

show task resources max

show task memory max

******** show task memory max *******

Monday May 29 08:30:53 IST 2023

task   heap     physical                     virtual

cpu facility inst   max          max     alloc           max    alloc status

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

2/0 sessmgr  902   548.6M   66% 602.6M  900.0M     29%  1.19G    4.00G good

2/0 aaamgr   913   68.06M   38% 99.11M  260.0M     17%  713.0M   4.00G good

Nota: il comando memory max fornisce la memoria massima utilizzata da quando il nodo viene ricaricato. Questo comando consente di identificare i modelli correlati al problema, ad esempio se il problema è iniziato dopo un ricaricamento recente o se è stato eseguito un ricaricamento recente che consente di controllare il valore massimo della memoria. D'altra parte, "show task resources" e "show task resources max" forniscono output simili, con la differenza che il comando max visualizza i valori massimi di memoria, CPU e sessioni utilizzate da un sessmgr/aamgr specifico dal ricaricamento.

show subscriber summary apn <apn name> smgr-instance <instance ID> | grep Total

-------------- to check no of subscribers for that particular APN in sessmg

Piano d'azione

Scenario 1. A causa dell'utilizzo elevato della memoria

1. Raccogliere SSD prima di riavviare/eliminare l'istanza di sessmgr.

2. Raccogliere il dump di base per qualsiasi sessmgr interessato.

task core facility sessmgr instance <instance-value>

3. Raccogliere l'output heap utilizzando questi comandi in modalità nascosta per gli stessi sessmgr e aamgr interessati.

show session subsystem facility sessmgr instance <instance-value> debug-info verbose

show task resources facility sessmgr instance <instance-value>

Heap outputs:

show messenger proclet facility sessmgr instance <instance-value> heap depth 9

show messenger proclet facility sessmgr instance <instance-value> system heap depth 9

show messenger proclet facility sessmgr instance <instance-value> heap

show messenger proclet facility sessmgr instance <instance-value> system

show snx sessmgr instance <instance-value> memory ldbuf

show snx sessmgr instance <instance-value> memory mblk

4. Riavviare l'attività sessmgr utilizzando questo comando:

task kill facility sessmgr instance <instance-value>

Attenzione: se sono presenti più sessioni in stato "warn" o "over", si consiglia di riavviare le sessioni con un intervallo compreso tra 2 e 5 minuti. Iniziare riavviando inizialmente solo 2-3 sessioni, quindi attendere fino a 10-15 minuti per osservare se le sessioni tornano allo stato normale. Questa operazione consente di valutare l'impatto del riavvio e di monitorare lo stato di avanzamento del ripristino.

5. Controllare lo stato di sessmgr.

show task resources facility sessmgr instance <instance-value> -------- to check if sessmgr is back in good state

6. Raccogliere un altro SSD.

7. Raccogliere l'output di tutti i comandi CLI menzionati nel passo 3.

8. Raccogliere il dump di base per qualsiasi istanza di sessmgr integra utilizzando il comando indicato nel passaggio 2.

Nota: per ottenere i corefile per le strutture problematiche e non problematiche, sono disponibili due opzioni. In primo luogo, è possibile raccogliere il corefile dello stesso sessmgr dopo che è tornato alla normalità dopo un riavvio. In alternativa, è possibile acquisire il corefile da un diverso sessmgr integro. Entrambi questi approcci forniscono informazioni utili per l'analisi e la risoluzione dei problemi.

Una volta raccolti gli output heap, contattare Cisco TAC per trovare la tabella esatta del consumo heap.

Da questi output heap, è necessario controllare la funzione che sta utilizzando più memoria. Sulla base di queste informazioni, TAC determina lo scopo designato dell'utilizzo delle funzioni e se il loro utilizzo è in linea con l'aumento del volume del traffico o delle transazioni o per qualunque altra ragione problematica.

Gli output heap possono essere ordinati utilizzando uno strumento a cui si accede tramite il link indicato come Memory-CPU-data-sorting-tool.

Nota: in questo strumento sono disponibili diverse opzioni per le diverse strutture. Tuttavia, è necessario selezionare "Tabella consumo heap" in cui caricare gli output heap ed eseguire lo strumento per ottenere l'output in un formato ordinato.

Scenario 2. A causa dell'elevato utilizzo della CPU

1. Raccogliere SSD prima di riavviare o terminare l'istanza di sessmgr.

2. Raccogliere il dump di base per qualsiasi sessmgr interessato.

task core facility sessmgr instance <instance-value>

3. Raccogliere l'output heap di questi comandi in modalità nascosta per lo stesso sessmgr/amgr interessato.

show session subsystem facility sessmgr instance <instance-value> debug-info verbose

show task resources facility sessmgr instance <instance-value>

show cpu table

show cpu utilization

show cpu info ------ Display detailed info of CPU.

show cpu info verbose ------ More detailed version of the above

Profiler output for CPU

This is the background cpu profiler. This command allows checking which functions consume

the most CPU time. This command requires CLI test command password.

show profile facility <facility instance> instance <instance ID> depth 4

show profile facility <facility instance> active facility <facility instance> depth 8

4. Riavviare l'attività sessmgr con questo comando:

task kill facility sessmgr instance <instance-value>

5. Controllare lo stato di sessmgr.

show task resources facility sessmgr instance <instance-value> -------- to check if sessmgr is back in good state

6. Raccogliere un altro SSD.

7. Raccogliere l'output di tutti i comandi CLI menzionati nel passo 3.

8. Raccogliere il dump di base per qualsiasi istanza di sessmgr integra utilizzando il comando indicato nel passaggio 2.

Per analizzare scenari con memoria e CPU elevate, esaminare le statistiche di massa per determinare se si verifica un aumento legittimo delle tendenze del traffico.

Verificare inoltre le statistiche di bulkstats per le statistiche a livello di scheda/CPU.