소개
이 문서에서는 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
명령 구문을 사용하여 텍스트 편집기나 다른 방법으로 이미 존재하는 구성 파일에 저장한 다음 구성 파일을 수동으로 적용합니다. 이 명령이 이미 존재하는 구성 파일의 처음 몇 줄에 배치되었는지 확인하려면 이 작업을 수행할 때 주의하십시오. 로컬이 아닌 컨텍스트를 생성하기 전에 이 명령이 표시되어야 합니다.