Introducción
Este documento describe cómo resolver problemas de sessmgr o aamgr que están en estado "advertido" o "sobre".
Overview
Administrador de sesiones (Sessmgr): es un sistema de procesamiento de suscriptores que admite varios tipos de sesiones y es responsable de gestionar las transacciones de los suscriptores. Sessmgr se suele emparejar con AAAManagers.
Administrador de autorización, autenticación y cuentas (Aamgr): es responsable de realizar todas las operaciones y funciones de protocolo AAA para suscriptores y usuarios administrativos dentro del sistema.
Figura 1 :: Distribución de los recursos de Staros
Registros/Comprobaciones básicas
Comprobaciones básicas
Para recopilar más detalles sobre el problema, debe verificar esta información con el usuario:
- ¿Cuánto tiempo ha estado el sessmgr/aamgr en estado "advertir" o "sobre"?
- ¿Cuántos sessmgrs/aaamgrs se ven afectados por este problema?
- Debe confirmar si sessmgr/aamgr está en el estado "advertir" o "sobre" debido a la memoria o la CPU.
- También debe comprobar si ha habido un aumento repentino del tráfico, que se puede evaluar examinando el número de sesiones por sessmgr.
Al obtener esta información, podrá entender y abordar mejor el problema que se le plantea.
Registros
-
Obtenga Show Support Details (SSD) y los registros del sistema que capturan la marca de tiempo problemática. Se recomienda recopilar estos registros al menos 2 horas antes del inicio del problema para identificar el punto de activación.
-
Capture archivos de núcleo para sessmgr/aamgr problemático y no problemático. Puede encontrar más información al respecto en la sección Análisis.
Análisis
Paso 1. Para comprobar el estado de sessmgr/aamgr afectado mediante comandos.
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: El número de sesiones por sessmgr se puede verificar mediante este comando, como se muestra en el resultado del comando.
Ambos comandos ayudan a verificar el uso máximo de memoria desde que se recargó el nodo:
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: El comando memory max proporciona la memoria máxima utilizada desde que se recarga el nodo. Este comando nos ayuda a identificar cualquier patrón relacionado con el problema, como si el problema comenzó después de una recarga reciente o si ha habido una recarga reciente que nos permite verificar el valor máximo de memoria. Por otro lado, "show task resources" y "show task resources max" proporcionan resultados similares, con la distinción de que el comando max muestra los valores máximos de memoria, CPU y sesiones utilizadas por un sessmgr/aamgr específico desde la recarga.
show subscriber summary apn <apn name> smgr-instance <instance ID> | grep Total
-------------- to check no of subscribers for that particular APN in sessmg
Plan de acción
Escenario 1. Debido a la alta utilización de memoria
1. Recopile SSD antes de reiniciar/matar la instancia de sessmgr.
2. Recopile el vaciado de memoria para cualquiera de los sessmgr afectados.
task core facility sessmgr instance <instance-value>
3. Recopile la salida de montón utilizando estos comandos en el modo oculto para el mismo sessmgr y aamgr afectados.
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. Reinicie la tarea sessmgr con este comando:
task kill facility sessmgr instance <instance-value>
Precaución: Si hay varios sessmgrs en el estado "warn" o "over", se recomienda reiniciar los sessmgrs con un intervalo de 2 a 5 minutos. Comience por reiniciar sólo 2 a 3 sessmgrs inicialmente, y luego espere hasta 10 a 15 minutos para observar si esos sessmgrs vuelven al estado normal. Este paso ayuda a evaluar el impacto del reinicio y a supervisar el progreso de la recuperación.
5. Compruebe el estado de sessmgr.
show task resources facility sessmgr instance <instance-value> -------- to check if sessmgr is back in good state
6. Recoja otra SSD.
7. Recopile la salida de todos los comandos CLI mencionados en el Paso 3.
8. Recopile el vaciado de memoria para cualquiera de las instancias de sessmgr correctas mediante el comando mencionado en el Paso 2.
Nota: Para obtener archivos de núcleo para instalaciones problemáticas y no problemáticas, tiene dos opciones. Una, puede recopilar el archivo de núcleo del mismo sessmgr después de que vuelva a la normalidad después de un reinicio. Alternativamente, puede capturar el archivo de núcleo desde un sessmgr saludable diferente. Ambos enfoques proporcionan información valiosa para el análisis y la resolución de problemas.
Una vez que recopile las salidas del montón, póngase en contacto con Cisco TAC para encontrar la tabla de consumo de montón exacta.
A partir de estas salidas de montón, es necesario comprobar la función que está utilizando más memoria. En función de esto, el TAC investiga el objetivo previsto de la utilización de funciones y determina si su uso está en consonancia con el aumento del volumen de tráfico/transacciones o con cualquier otra razón problemática.
Los resultados del montón se pueden ordenar mediante una herramienta a la que se accede mediante el vínculo dado como Memory-CPU-data-sort-tool.
Nota: aquí en esta herramienta, hay varias opciones para diferentes instalaciones. Sin embargo, debe seleccionar "tabla de consumo de montón" donde cargar salidas de montón y ejecutar la herramienta para obtener la salida en un formato ordenado.
Situación hipotética 2. Debido al uso elevado de la CPU
1. Recopile SSD antes de reiniciar o matar la instancia de sessmgr.
2. Recopile el vaciado de memoria para cualquiera de los sessmgr afectados.
task core facility sessmgr instance <instance-value>
3. Recopile la salida de montón de estos comandos en el modo oculto para el mismo sessmgr/aamgr afectado.
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. Reinicie la tarea sessmgr con este comando:
task kill facility sessmgr instance <instance-value>
5. Compruebe el estado de sessmgr.
show task resources facility sessmgr instance <instance-value> -------- to check if sessmgr is back in good state
6. Recoja otra SSD.
7. Recopile la salida de todos los comandos CLI mencionados en el Paso 3.
8. Recopile el vaciado de memoria para cualquiera de las instancias de sessmgr correctas mediante el comando mencionado en el Paso 2.
Para analizar tanto los escenarios de memoria alta como los de CPU, examine las estadísticas masivas para determinar si hay un aumento legítimo en las tendencias del tráfico.
Además, verifique las estadísticas de volumen para las estadísticas de nivel de tarjeta/CPU.