Inhalt

Einleitung

Problembeschreibung

Analyse

Lösung

Vorgehensweise

Einleitung

In diesem Dokument wird die Lösung für Sessmgr-Instanzen beschrieben, die aufgrund eines hohen acsmgr_icsr_frwk_instance_chkpt_falied() Prozessnutzung.

Problembeschreibung

Plattform ASR5500

SW-Version: 21.27.4 und 21.19.10

Sitzungsmanager-Instanzen im Warnungsstatus aufgrund hoher Speicherbelegung auf  acsmgr_icsr_frwk_instance_chkpt_falied()  Funktion bei deaktivierter Sitzungswiederherstellung:

[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

Analyse

Um zu isolieren, ob die große Anzahl an Teilnehmern den Prozess auslöst acsmgr_icsr_frwk_instance_chkpt_falied() um überlastet zu werden, wird eine Sessmgr-Instanz ausgelastet und es wird bestätigt, dass die Speichernutzung von Sessmgr nicht abgenommen hat:

[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

Wenn in den Protokollen ein "Besetzt"-Out für eine der betroffenen Sessmgr-Instanzen ausgeführt wird, verringert dies die Anzahl der verwendeten Sitzungen, aber die belegte Speicherzuweisung bleibt hoch und zeigt an, dass die Sessmgr-Instanz den WARN-Status hat.

Zu weiteren Untersuchungen: acsmgr_icsr_frwk_instance_chkpt_falied()wird aufgerufen, während die Prüfpunktinformationen verarbeitet werden. In dieser Funktion gibt es Listen-Hinzufügungs-/Aktualisierungs-/Löschvorgänge, die bei deaktivierter Sitzungswiederherstellung nicht erwartungsgemäß funktionieren. Dies ist der Grund für den erhöhten Speicherverbrauch. Der hier verwendete Speicher wird in diesem Szenario über die Zeit akkumuliert. Dieses Verhalten tritt nur in Szenarien auf, in denen die require session recovery ist nicht konfiguriert. Der akkumulierte Speicher, der verarbeitet werden soll  acsmgr_icsr_frwk_instance_chkpt_falied() wird nicht freigegeben, wenn (nein require session recovery), was zu einem Memlek führen kann."

Lösung

Implementieren Sie die Sitzungswiederherstellung, um dieses Problem zu beheben.

Vorgehensweise

Schritt 1: Überprüfen Sie an der Eingabeaufforderung des Exec-Modus, ob die Sitzungswiederherstellungsfunktion über die Sitzung aktiviert ist, und verwenden Sie die Funktionslizenzen auf dem System mit dem show license info aus. Wenn der aktuelle Status der Sitzungswiederherstellungsfunktion "Disabled" (Deaktiviert) lautet, können Sie diese Funktion erst aktivieren, nachdem ein Lizenzschlüssel im System installiert wurde.

Schritt 2: Verwenden Sie dieses Konfigurationsbeispiel, um die Sitzungswiederherstellung zu aktivieren.

configure

require session recovery

end

Diese Funktion wird erst nach dem Neustart des Systems wirksam.

Schritt 3: Speichern Sie die Konfiguration wie unter Prüfen und Speichern der Konfiguration beschrieben.

Schritt 4: Führen Sie einen Systemneustart mit dem reload aus. Die folgende Eingabeaufforderung wird angezeigt:

Are you sure? [Yes|No]:

Bestätigen Sie den Systemneustart, und geben Sie Yes.

Nach dem Neustart aktiviert das System die Sitzungswiederherstellung und erstellt alle gespiegelten "Standby-Modus"-Aufgaben, führt Paketverarbeitungskartenreservierungen durch und führt andere Vorgänge automatisch aus.

Schritt 5: Nachdem das System neu gestartet wurde, müssen Sie die Systembereitschaft überprüfen, um diese Funktion wie unter Sitzungswiederherstellungsstatus anzeigen beschrieben zu unterstützen. Erfahrenere Benutzer können die require session recovery -Befehlssyntax in eine Konfigurationsdatei einfügen, die bereits mit einem Texteditor oder auf andere Weise existiert, und dann die Konfigurationsdatei manuell anwenden. Gehen Sie dabei vorsichtig vor, um sicherzustellen, dass dieser Befehl in die ersten Zeilen einer bereits vorhandenen Konfigurationsdatei eingefügt wird. Er muss vor der Erstellung eines nicht lokalen Kontexts stehen.