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:
- Da quanto tempo il sessmgr/aamgr è in stato di "avvertenza" o di "superamento"?
- Quanti sessmgrs/aamgrs sono interessati da questo problema?
- È necessario verificare se sessmgr/aamgr è nello stato "warn" o "over" a causa della memoria o della CPU.
- 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
-
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.
-
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.