Contenido

Introducción

Problema

Troubleshoot

Solución

Introducción

Este documento describe el problema en el sessmgr que va al estado ADVERTENCIA debido al gran número de flujos HTTP. Este problema se informa en los routers de servicios agregados (ASR) de Cisco 5x00.

Problema

El estado de Sessmgr es ADVERTENCIA y uso elevado de la memoria.

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

Thursday July 24 17:44:58 IST 2014

task   cputime        memory     files      sessions

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

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

4/0 sessmgr          3  26% 100%  1.86G  1.86G   34  500  1766 28160 I   warn

Estos registros de errores se generan en el proceso.No hay impacto en el suscriptor debido a este registro de errores. Según el diseño una vez que la llamada es rechazada por sessmgr, que está en estado ADVERTENCIA, el sistema intenta en diferentes sessmgrs y la llamada pasa.

[sessmgr 10018 error] [4/0/6812 <sessmgr:3> sessmgr_func.c:44683] [software internal system syslog] Sessmgr-3 full (35200 effective number of calls, 1777 calllines in use, 51146 free flows, 31221 free aaa_sessions, 1777 used-mem-credits, 1777 used-sess-credits, 1948360 mem-usage, 1945600 mem-limit, 0 ecs-queue-usage, 70400 ecs-queue-limit, 16850 ecs-num-flows, 400000 ecs-max-flows, 2334720 ecs-mem-limit[ecs-flow/mem-values:valid], 0x86 limit-flags) - call rejected

Troubleshoot

Capture el resultado show support details y verifique los resultados del comando para resolver problemas adicionales.

El problema de memoria está relacionado con la cantidad de flujos que maneja el sessmgr. La correlación se puede ver entre sessmgr con alto consumo de memoria y gran cantidad de flujos.

******** debug acsmgr show memory usage *******

Thursday July 24 17:50:06 IST 2014

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

!                !               Caches Count              !

Instance Memory !      Flows     !   Callline    Data-Session  TCP OOO     !

! Current    Max ! Total   Free  Total   Free  Total   Free!

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

1 865.68M  43365  64360     5500   1178  56140  12775   1102   1064

2 852.05M  43879  64767     5500   1178  60150  16271   1102   1067

3 1902.68M  17252 276519    4400   2631  44110  26858    551    541

Para los sessmgrs afectados (y para uno no afectado), recopile estos resultados de comando, donde x es la instancia de Sessmgr.

show messenger proclet facility sessmgr instance <x> heap

show messenger proclet facility sessmgr instance <x> system heap

task core facility sessmgr instance <x>

show active-charging flows instance <x>

show profile facility sessmgr active depth 8 head 201

show task resources faciltity sessmgr instance <x> max

Compruebe si las reglas no optimizadas y el grupo de reglas consumen mucha memoria.

debug acsmgr show rule-optimization-information

debug acsmgr show grp-of-rdef-optimization-information

El mayor consumo de memoria se debe a estas funciones basadas en los resultados del comando.

acs_http_pkt_inspection()

acsmgr_alloc_buffer()

snx_add_dbufs()

sn_aaa_alloc_session_block()

sgx_imsa_bind_user()

También puede comprobar el número máximo de flujos HTTP simultáneos obtenidos por líneas de llamada

******** debug acsmgr show flow-stats max-simultaneous-flows http *******

Thursday July 24 17:50:04 IST 2014

Histogram of Max No of Simultaneous HTTP Flows attained by Calllines

No Of Flows             No Of Calllines

1 to 10                 964712518

11 to 20                384105002

21 to 40                232987189

41 to 100               148938918

101 to 200              115919586

201 to 500              86729303

501 to 1000             69975385

1001 to 2000            59635906

2001 to 5000            50743511

5001 to 10000           44566999

> 10000                 1044671491

******** debug acsmgr show flow-stats cumulative http *******

Thursday July 24 17:50:03 IST 2014

Histogram of Total Cumulative HTTP Flows by Calllines

No Of Flows             No Of Calllines

1 to 10                 964712485

11 to 20                384104980

21 to 40                232987175

41 to 100               148938911

101 to 200              115919583

201 to 500              86729297

501 to 1000             69975377

1001 to 2000            59635907

2001 to 5000            50743509

5001 to 10000           44567004

> 10000                 1044671452

Puede concluir que hay un gran número de sesiones HTTP asignadas y esto podría deberse al tráfico HTTP intenso. Además, hay casi 1044671491 Llamadas, que tienen más de 10000 flujos HTTP a la vez. Esto conlleva un uso elevado de la memoria.

Solución

Tiene la CLI para limitar el número de flujos por suscriptor

flow limit-across-applications

Cisco recomendaría configurar el límite de flujo entre aplicaciones a 5000 como se recomienda en todas las bases de reglas afectadas donde se puede ver un gran número de tráfico HTTP.

Este es el procedimiento para configurar el comando

In local context under Global configuration.

# active-charging service ECS

(config-acs)# rulebase GOLIVE

(config-rule-base)# flow limit-across-applications 5000

Más información sobre este comando.

flujo límite entre aplicaciones

Este comando le permite limitar el número total de flujos simultáneos por Suscriptor/APN enviados a una base de reglas independientemente del tipo de flujo, o limitar los flujos según el tipo de protocolo bajo la función Control de sesión.

Producto:

ACS

Privilegio:

Administrador de seguridad, administrador

Modo:

Exec > ACS Configuration> Rulebase Configuration

active-charging service service_name > rulebase rulebase_name

Entering the above command sequence results in the following prompt:

[local]host_name(config-rule-base)#

Sintaxis

flow limit-across-applications { limit | non-tcp limit | tcp limit }no flow limit-across-applications [ non-tcp | tcp ] no

Si se ha configurado previamente, elimina la configuración límite de flujo entre aplicaciones de la base de reglas actual.

flujo límite entre aplicaciones

Especifica el número máximo de flujos entre todas las aplicaciones para la base de reglas.

El límite debe ser un entero entre 1 y 4000000000.

Predeterminado: Sin límites

límite no TCP

Especifica el límite máximo de flujos de tipo no TCP.

El límite debe ser un entero entre 1 y 4000000000.

Predeterminado: Sin límites

límite TCP

Especifica el límite máximo de flujos TCP.

El límite debe ser un entero entre 1 y 4000000000.

Predeterminado: Sin límites

Uso:

Utilice este comando para limitar el número total de flujos permitidos para una base de reglas independientemente del tipo de flujo o limitar los flujos basados en el protocolo: no TCP (sin conexión) o TCP (orientado a la conexión).

Si un suscriptor intenta exceder estos límites, el sistema descarta los paquetes del nuevo flujo. Este procesamiento de límite de este comando tiene los siguientes aspectos para UDP, TCP, ICMP y algunos de los flujos exentos:

- UDP/ICMP: El sistema espera el tiempo de espera del flujo antes de actualizar el contador y eliminarlo del conteo de número de flujos.

- TCP: Después de que termine un flujo TCP, el sistema espera por un breve período de tiempo para acomodar la retransmisión de cualquier paquete perdido de un extremo. Los flujos TCP que se terminan, pero que aún están en espera de que se exima el tiempo de espera para este procesamiento de límite.

- Flujos exentos: El sistema exime a todos los demás flujos especificados con el comando flow limit-for-flow-type en el Modo de Configuración de Acción de Carga ACS establecido en no.

Ejemplo:

Este comando define el número máximo de flujos 200000 para la base de reglas:

flow limit-across-applications 200000