概要
このドキュメントでは、高負荷のためにWARN状態になるsessmgrインスタンスのソリューションについて説明します acsmgr_icsr_frwk_instance_chkpt_falied()
プロセスの使用状況。
問題の説明
プラットフォームASR5500
ソフトウェアバージョン:21.27.4および21.19.10
セッションマネージャインスタンスがメモリ使用量が多いため警告状態です。 acsmgr_icsr_frwk_instance_chkpt_falied()
セッション・リカバリが無効な場合の機能:
[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
分析
大量のサブスクライバがプロセスをトリガーするかどうかを分離するため acsmgr_icsr_frwk_instance_chkpt_falied()
過剰に使用するには、sessmgrインスタンスのビジーアウトを実行し、sessmgrメモリ使用率が低下していないことを確認します。
[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
ログから、影響を受けるsessmgrインスタンスの1つでビジーアウトが実行されると、使用されるセッションの数は減少しますが、使用されるメモリの割り当ては依然として高いままであり、sessmgrインスタンスがWARN状態になる原因となることが示されます。
詳しく調査すると – acsmgr_icsr_frwk_instance_chkpt_falied()
関数は、チェックポイント情報が処理されている間に呼び出されます。この関数にはリストの追加/更新/削除操作がありますが、セッションの回復が無効になっている場合は期待どおりに動作せず、これがメモリ消費が増加する理由です。ここで使用されるメモリは、このシナリオでは時間の経過とともに蓄積されます。この動作は、 require session recovery
設定されていません。処理する累積メモリ acsmgr_icsr_frwk_instance_chkpt_falied()
が空き領域を増やしても、 require session recovery
を参照してください。
解決方法
この問題を解決するには、セッションリカバリを実装します。
手順
ステップ 1: EXECモードのプロンプトで、システムのセッションおよび機能使用ライセンスを使用して、セッション回復機能が有効になっていることを確認します。 show license info
コマンドを使用して、アップグレードを実行します。 セッション復旧機能の現在のステータスがDisabledの場合は、ライセンスキーがシステムにインストールされるまで、この機能を有効にできません。
ステップ 2: 次の設定例を使用して、セッションリカバリを有効にします。
configure
require session recovery
end
この機能は、システムを再起動するまで有効になりません。
ステップ 3: 「設定の確認と保存」の説明に従って、設定を保存します。
ステップ 4: 次のコマンドを使用して、システムの再起動を実行します。 reload
コマンドを使用して、アップグレードを実行します。次のプロンプトが表示されます。
システムの再起動を確認し、次のように入力します。 Yes
を参照。
システムを再起動すると、セッション・リカバリが有効になり、ミラー化されたすべての「スタンバイ・モード」タスクの作成、パケット処理カードの予約の実行、およびその他の操作が自動的に行われます。
ステップ 5: システムの再起動後、「セッションのリカバリ・ステータスの表示」の説明に従って、システムがこの機能をサポートする準備ができていることを確認する必要があります。 上級ユーザであれば、 require session recovery
コマンドの構文をテキストエディタなどの方法で既存の設定ファイルに書き込み、設定ファイルを手動で適用します。このコマンドを既存のコンフィギュレーションファイルの最初の数行に配置する場合は、十分に注意してください。ローカル以外のコンテキストを作成する前にコマンドを表示する必要があります。