소개
이 문서에서는 high(높음)로 인해 WARN 상태로 전환되는 essmgr 인스턴스의 솔루션에 대해 설명합니다 acsmgr_icsr_frwk_instance_chkpt_falied() 프로세스 사용.
문제 설명
플랫폼 ASR5500
SW 버전: 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() 과도하게 활용하려면 sesmgr 인스턴스 통화 중 출력이 수행되며, sesmgr 메모리 사용률이 감소하지 않은 것으로 확인됩니다.
[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 인스턴스 중 하나에 대해 통화 중 로그아웃을 수행하면 사용된 세션 수가 감소하지만 사용된 메모리 할당은 여전히 높게 유지되며 sessmgr 인스턴스가 WARN 상태가 되는 것으로 표시됩니다.
추가 조사에서는 acsmgr_icsr_frwk_instance_chkpt_falied()체크포인트 정보가 처리되는 동안 함수가 호출됩니다. 이 기능에는 목록 추가/업데이트/삭제 작업이 있으며, 이 작업은 세션 복구가 비활성화되었을 때 예상대로 작동하지 않으므로 메모리 소비량이 증가합니다. 여기에 사용된 메모리는 시간이 지남에 따라 이 시나리오에 축적된다. 이 동작은 require session recovery 이(가) 구성되지 않았습니다. 처리할 누적 메모리 acsmgr_icsr_frwk_instance_chkpt_falied() 다음 상황이 발생해도 해제되지 않음(아니요) require session recovery)를 사용합니다.
솔루션
이 문제를 해결하려면 세션 복구를 구현하십시오.
절차
1단계. Exec mode 프롬프트에서 세션을 통해 세션 복구 기능이 활성화되었는지, 그리고 이 기능을 통해 시스템에서 라이센스를 사용할 수 있는지 확인합니다. show license info 명령을 실행합니다. 세션 복구 기능의 현재 상태가 Disabled(비활성화됨)이면 시스템에 라이센스 키가 설치될 때까지 이 기능을 활성화할 수 없습니다.
2단계. 세션 복구를 활성화하려면 이 컨피그레이션 예를 사용합니다.
configure
require session recovery
end
이 기능은 시스템을 다시 시작해야 적용됩니다.
3단계. 컨피그레이션 확인 및 저장에 설명된 대로 컨피그레이션을 저장합니다.
4단계. 를 사용하여 시스템을 다시 시작합니다. reload 명령을 실행합니다. 다음과 같이 표시됩니다.
시스템 재시작을 수행하고자 하는지 확인하고 Yes.
시스템이 다시 시작되면 세션 복구를 활성화하고 모든 미러된 "대기 모드" 작업을 생성하며 패킷 처리 카드 예약 및 기타 작업을 자동으로 수행합니다.
5단계. 시스템을 다시 시작한 후에는 세션 복구 상태 보기에 설명된 대로 이 기능을 지원할 수 있도록 시스템의 준비 상태를 확인해야 합니다. 고급 사용자는 require session recovery 명령 구문을 사용하여 텍스트 편집기나 다른 방법으로 이미 존재하는 구성 파일에 저장한 다음 구성 파일을 수동으로 적용합니다. 이 명령이 이미 존재하는 구성 파일의 처음 몇 줄에 배치되었는지 확인하려면 이 작업을 수행할 때 주의하십시오. 로컬이 아닌 컨텍스트를 생성하기 전에 이 명령이 표시되어야 합니다.