Sommario

Introduzione

Descrizione del problema

Analisi

Soluzione

Procedura

Introduzione

In questo documento viene descritta la soluzione per le istanze di sessmgr che passano allo stato WARN a causa di un acsmgr_icsr_frwk_instance_chkpt_falied() utilizzo dei processi.

Descrizione del problema

Piattaforma ASR5500

Versione SW: 21.27.4 e 21.19.10

Istanze di Gestione sessioni in stato di avviso a causa di un consumo di memoria elevato su  acsmgr_icsr_frwk_instance_chkpt_falied()  funzione quando il ripristino della sessione è disabilitato:

[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

Analisi

Per isolare se l'elevato numero di sottoscrittori totali attiva il processo acsmgr_icsr_frwk_instance_chkpt_falied() per essere sovrautilizzata, viene eseguita un'istanza di sessmgr occupata e viene confermato che l'utilizzo della memoria di sessmgr non è diminuito:

[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

Dai log, quando si esegue un'operazione di occupato su una delle istanze di sessmgr interessate, diminuisce il numero di sessioni utilizzate, ma l'allocazione della memoria usata rimane elevata e indica che l'istanza di sessmgr si trova nello stato WARN.

In seguito a ulteriori indagini, acsmgr_icsr_frwk_instance_chkpt_falied()viene chiamata durante l'elaborazione delle informazioni sul checkpoint. In questa funzione sono presenti operazioni di aggiunta/aggiornamento/eliminazione di elenchi che non funzionano come previsto quando il ripristino della sessione è disabilitato e questo è il motivo per l'aumento del consumo di memoria. La memoria utilizzata in questo scenario viene accumulata nel tempo. Questo comportamento si verifica solo nello scenario in cui require session recovery non è configurato. Memoria accumulata da elaborare  acsmgr_icsr_frwk_instance_chkpt_falied() non viene liberato quando (no require session recovery) che potrebbe causare la perdita di memoria."

Soluzione

Per risolvere il problema, implementare il ripristino della sessione.

Procedura

Passaggio 1. Al prompt in modalità di esecuzione, verificare che la funzionalità di ripristino della sessione sia abilitata tramite le licenze d'uso delle funzionalità e della sessione sul sistema con show license info  Se lo stato corrente della funzione di ripristino della sessione è Disattivato, non sarà possibile attivare questa funzione finché nel sistema non verrà installata una chiave di licenza.

Passaggio 2. Utilizzare questo esempio di configurazione per abilitare il ripristino della sessione.

configure

require session recovery

end

Questa funzionalità ha effetto solo dopo il riavvio del sistema.

Passaggio 3. Salvare la configurazione come descritto in Verifica e salvataggio della configurazione.

Passaggio 4. Eseguire un riavvio del sistema con reload  Viene visualizzato il prompt:

Are you sure? [Yes|No]:

Confermare il proprio desiderio di eseguire un riavvio del sistema e immettere: Yes.

Una volta riavviato, il sistema abilita il ripristino della sessione e crea tutte le attività in modalità standby di mirroring, esegue automaticamente prenotazioni delle schede di elaborazione dei pacchetti e altre operazioni.

Passaggio 5. Dopo il riavvio del sistema, è necessario verificare se il sistema è pronto a supportare questa funzione, come descritto in Visualizzazione dello stato di ripristino della sessione. Gli utenti più esperti possono scegliere di inserire il require session recovery sintassi del comando in un file di configurazione già esistente con un editor di testo o con altri mezzi, quindi applicare manualmente il file di configurazione. Prestare attenzione quando si esegue questa operazione, per assicurarsi che il comando venga posizionato tra le prime righe di un file di configurazione già esistente. Il comando deve essere visualizzato prima della creazione di qualsiasi contesto non locale.