Contenido

Introducción

Descripción de problemas

Análisis

Solución

Procedimiento

Introducción

Este documento describe la solución para las instancias de sessmgr que entran en estado WARN debido a la alta acsmgr_icsr_frwk_instance_chkpt_falied() uso del proceso.

Descripción de problemas

Plataforma ASR5500

Versión SW: 21.27.4 y 21.19.10

Instancias del administrador de sesiones en estado de advertencia debido al alto consumo de memoria en  acsmgr_icsr_frwk_instance_chkpt_falied()  función cuando se inhabilita la recuperación de sesión:

[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

Análisis

Para aislar si la alta cantidad de suscriptores totales activa el proceso acsmgr_icsr_frwk_instance_chkpt_falied() para que se sobreutilice, se realiza un ocupado de la instancia de sessmgr y se confirma que el uso de la memoria de sessmgr no disminuyó:

[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

Desde los registros, cuando se realiza un ocupado-out en una de las instancias de sessmgr afectadas, disminuye el número de sesiones usadas, pero la asignación de memoria usada sigue siendo alta y muestra que causa que la instancia de sessmgr esté en estado WARN.

En una investigación posterior, acsmgr_icsr_frwk_instance_chkpt_falied()se llama a esta función mientras se procesa la información del punto de control. Hay operaciones de adición/actualización/eliminación de listas en esta función que no funcionan como se esperaba cuando se inhabilita la recuperación de sesión y esta es la razón del mayor consumo de memoria. La memoria utilizada aquí se acumula en este escenario a lo largo del tiempo. Este comportamiento solo se produce en el escenario en el que require session recovery no está configurado. La memoria acumulada para procesar  acsmgr_icsr_frwk_instance_chkpt_falied() no se libera cuando (no require session recovery) que potencialmente causa la filtración de memes."

Solución

Implemente la recuperación de sesión para resolver este problema.

Procedimiento

Paso 1. En el indicador del modo Exec, verifique que la función de recuperación de sesión esté habilitada a través de las licencias de uso de sesión y función en el sistema con el show license info comando. Si el estado actual de la función de recuperación de sesión es Desactivado, no podrá activar esta función hasta que se haya instalado una clave de licencia en el sistema.

Paso 2. Utilice este ejemplo de configuración para habilitar la recuperación de sesión.

configure

require session recovery

end

Esta función no surte efecto hasta que se haya reiniciado el sistema.

Paso 3. Guarde la configuración como se describe en Verificación y almacenamiento de la configuración.

Paso 4. Reinicie el sistema con el reload comando. Este es el mensaje que aparece:

Are you sure? [Yes|No]:

Confirme su deseo de reiniciar el sistema e introduzca Yes.

El sistema, cuando se reinicia, habilita la recuperación de sesión y crea todas las tareas duplicadas de "modo en espera", realiza reservas de tarjetas de procesamiento de paquetes y otras operaciones automáticamente.

Paso 5. Una vez reiniciado el sistema, debe verificar si el sistema está preparado para admitir esta función, como se describe en Visualización del estado de recuperación de sesión. Los usuarios más avanzados pueden optar por insertar el require session recovery sintaxis de comandos en un archivo de configuración que ya existe con un editor de texto u otros medios, y luego aplique manualmente el archivo de configuración. Tenga cuidado al hacer esto, para asegurarse de que este comando se coloque entre las primeras líneas de cualquier archivo de configuración que ya exista; debe aparecer antes de la creación de cualquier contexto no local.