内容

概要

問題の説明

分析

解決方法

手順

概要

このドキュメントでは、高負荷のために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 コマンドを使用して、アップグレードを実行します。次のプロンプトが表示されます。

Are you sure? [Yes|No]:

システムの再起動を確認し、次のように入力します。 Yesを参照。

システムを再起動すると、セッション・リカバリが有効になり、ミラー化されたすべての「スタンバイ・モード」タスクの作成、パケット処理カードの予約の実行、およびその他の操作が自動的に行われます。

ステップ 5： システムの再起動後、「セッションのリカバリ・ステータスの表示」の説明に従って、システムがこの機能をサポートする準備ができていることを確認する必要があります。 上級ユーザであれば、 require session recovery コマンドの構文をテキストエディタなどの方法で既存の設定ファイルに書き込み、設定ファイルを手動で適用します。このコマンドを既存のコンフィギュレーションファイルの最初の数行に配置する場合は、十分に注意してください。ローカル以外のコンテキストを作成する前にコマンドを表示する必要があります。