La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto il problema relativo al passaggio dello stato WARN di sessmgr a causa dell'elevato numero di flussi HTTP. Il problema è segnalato sui Cisco Aggregated Service Router (ASR) 5x00.
Lo stato di Sessmgr è WARN e l'utilizzo della memoria è elevato.
******** 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
Questi log degli errori vengono generati nel processo. Non vi è alcun impatto sul sottoscrittore a causa di questo log degli errori. Una volta rifiutata la chiamata da sessmgr in stato WARN, il sistema tenta in sessioni diverse e la chiamata viene eseguita.
[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
Acquisire l'output show support details e verificare la presenza di output del comando per risolvere ulteriormente i problemi.
Il problema di memoria è correlato alla quantità di flussi gestiti da sessmgr. La correlazione può essere rilevata tra un elevato consumo di memoria e un'elevata quantità di flussi di sessmgr.
******** 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
Per i sessmgr interessati (e per uno non interessato), raccogliere questi output di comando, dove x è l'istanza di 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
Verificare se le regole non ottimizzate e i gruppi di valori di riferimento per le regole richiedono molta memoria.
debug acsmgr show rule-optimization-information debug acsmgr show grp-of-rdef-optimization-information
Il maggiore consumo di memoria è dovuto a queste funzioni basate sugli output del comando.
acs_http_pkt_inspection() acsmgr_alloc_buffer() snx_add_dbufs() sn_aaa_alloc_session_block() sgx_imsa_bind_user()
È inoltre possibile selezionare il numero massimo di flussi HTTP simultanei raggiunti dalle linee di chiamata
******** 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
Si può concludere che il numero di sessioni HTTP allocate è elevato e che ciò potrebbe essere dovuto al traffico HTTP elevato. Sono inoltre presenti quasi 1044671491 linee telefoniche, che hanno più di 10000 flussi HTTP alla volta. Ciò comporta un utilizzo elevato della memoria.
è disponibile la CLI per limitare il numero di flussi per sottoscrittore
flow limit-across-applications
Cisco consiglia di configurare il limite di flusso tra le applicazioni su 5000, come consigliato in tutte le basi regole interessate, in cui è possibile visualizzare un numero elevato di traffico HTTP.
Questa è la procedura per configurare il comando
In local context under Global configuration. # active-charging service ECS (config-acs)# rulebase GOLIVE (config-rule-base)# flow limit-across-applications 5000
Ulteriori informazioni sul comando.
flusso limite tra le applicazioni
Questo comando consente di limitare il numero totale di flussi simultanei per Sottoscrittore/APN inviati a una base regole indipendentemente dal tipo di flusso o di limitare i flussi in base al tipo di protocollo sotto la funzione di controllo della sessione.
Prodotto:
ACS
Privilegio:
Amministratore sicurezza, Amministratore
Modalità:
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)#
Sintassi
flow limit-across-applications { limit | non-tcp limit | tcp limit }no flow limit-across-applications [ non-tcp | tcp ] no
Se è stato configurato in precedenza, elimina la configurazione flow limit-through-applications dalla base regole corrente.
flusso limite tra applicazioni
Specifica il numero massimo di flussi tra tutte le applicazioni per la base regole.
limit deve essere un numero intero compreso tra 1 e 400000000.
Predefinito: Nessun limite
limite non tcp
Specifica il limite massimo di flussi di tipo non TCP.
limit deve essere un numero intero compreso tra 1 e 400000000.
Predefinito: Nessun limite
limite tcp
Specifica il limite massimo di flussi TCP.
limit deve essere un numero intero compreso tra 1 e 400000000.
Predefinito: Nessun limite
Utilizzo:
Utilizzare questo comando per limitare il numero totale di flussi consentiti per una base regole indipendentemente dal tipo di flusso o per limitare i flussi in base al protocollo, non TCP (senza connessione) o TCP (orientato alla connessione).
Se un sottoscrittore tenta di superare questi limiti, il sistema scarta i pacchetti del nuovo flusso. Questo limite di elaborazione di questo comando prevede i seguenti aspetti per UDP, TCP, ICMP e alcuni flussi esentati:
Esempio:
Questo comando definisce il numero massimo di 200000 flussi per la base regole:
flow limit-across-applications 200000