반응형
증상
장비 모델 및 버전
- "WS-C3650-24TS " 16.3.6
> sh version
...
Switch Ports Model SW Version SW Image Mode
------ ----- ----- ---------- ---------- ----
* 1 28 WS-C3650-24TS 16.3.6 CAT3K_CAA-UNIVERSALK9 INSTALL
시스템 로그
- warrning 단계에서 10분 간격으로 해당 로그가 지속적으로 표출
> sh log
...
May 31 06:52:30.808 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:02:40.812 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:12:50.832 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:23:00.846 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:33:10.860 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:43:20.869 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 07:53:30.887 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 08:03:40.907 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 08:13:50.927 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
May 31 08:24:00.953 KST: %PLATFORM-4-ELEMENT_WARNING:Switch 1 R0/0: smand: 1/RP/0: Used Memory value 95% exceeds warning level 90%
버그 분석
Cisco BUG Report
- 해당 증상은 "CSCvd45973" 에 보고 되었으며 관련 자료는 아래 참조
- https://quickview.cloudapps.cisco.com/quickview/bug/CSCvd45973
BUG 간략 분석
- "platform-mgr" 프로세스의 kernel 수준의 메모리 누수(memory leak)에 의한 버그
- CAT3650/3850 IOS 16.1.x, 16.2.x, 16.3.x 버전에서 영향을 받는다.
- "platform-mgr" 은 플랫폼의 manager 프로세스로 IOS XE상의 프로세스이며 "show processes memory" 명령으로 볼 수 있는 IOSd 프로세스의 메모리와는 다르다.
- IOS XE linux kernel 플랫폼으로 변경되면서 IOS가 IOSd로 프로세스의 일부가 되었다.
- 해당 버그 메세지는 R0-1 슬롯의 프로세서가 사용하는 물리메모리의 사용량이 "platform-mgr" 프로세스 메모리 누수로 인해 임계값을 넘어 경고하고 있다.
- platfom-mgr 프로세스의 메모리 점유량 확인
> sh platform software process list switch active R0 sort memory
Name Pid PPid Group Id Status Priority Size
------------------------------------------------------------------------------
...
platform_mgr 16279 13702 16279 S 20 862552064
...
- platform-mgr 프로세스의 메모리 size가 지속적으로 증가하는 추이를 유심히 관찰해야한다.
- R0-1 slot(The route processor in slot 0) 메모리 사용량의 추이 또한 관찰해야한다.
> show platform software status control-processor brief
...
Memory (kB)
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
1-RP0 Warning 3959052 3746416 (95%) 212636 ( 5%) 4524188 (114%)
...
- 참고 : 리눅스의 top 명령처럼 cisco IOS XE에서 볼수 있는 방법
monitor platform software process switch active R0
추이 모니터링
수집 설정
- expect, spawn을 사용하여 간단한 스크립트를 만들고 zabbix로 값을 수집하여 추이 모니터링 하였음.
- zabbix-agent user parameter
- total|used를 입력 값으로 총 메모리량과 사용메모리량을 수집
> cat /etc/zabbix/zabbix_agent2.d/L3_A-platform-mgr-value.conf
UserParameter=l3_a-platform-memory[*],/bin/sh /opt/expect/02.L3_A-plaform-mgr-value.sh $1
- 스크립트
# 메모리 사용량 출력 및 저장
> cat /opt/expect/01.L3_A.exp
#!/usr/bin/expect -f
#!/bin/bash
#!/usr/bin/tclsh
#set force_conservative 0;
# set to 1 to force conservative mode even if
# script wasn't run conservatively originally
spawn ssh <id>@<ip>
expect "*assword: "
send "<password>\r"
log_user 1
expect "*>"
send "en\r"
expect "*assword: "
send "<enable password>\r"
expect "*#"
send "show platform software status control-processor brief\r"
expect "*#"
send "exit\r"
# total or used 메모리양 표출
> cat /opt/expect/02.L3_A-plaform-mgr-value.sh
#!/bin/sh
dir="/opt/expect"
if [ $1 ]; then
$dir/01.L3_A.exp > $dir/result
fi
if [ $1 == "total" ]; then
total=`cat $dir/result | grep "1-RP0" | sed -n 2p | awk '{print $3}'`
echo -n $total
elif [ $1 == "used" ] ; then
used=`cat $dir/result | grep "1-RP0" | sed -n 2p | awk '{print $4}'`
echo -n $used
fi
추이 결과
- 91% -> 95% 로 약 4% 증가 하기 까지 약 6개월의 기간이 소요 되었음.
- 이 기간동안 장비 상에 특이점은 발생 되지 않았음.
조치
- 증상이 해결된 버전(16.5.x, 16.6.x)으로 IOS를 업그레이드 하는것이 근복적인 해결법.
- 사용량이 100%에 도달하면 장비가 reload 될수 있으므로 업그레이드 전이라면 수치확인 후 점검을 통해 reload해 메모리 리소스를 해소해주는 것이 좋음
반응형
'네트워크 > Switch' 카테고리의 다른 글
Cisco IOS 라이선스 별 차이점 (0) | 2023.08.30 |
---|---|
[Alteon L4] Session 정보 (0) | 2023.06.22 |
Cisco WS-C4948-S IOS UPGRADE (0) | 2022.05.12 |
네트워크 장비(cisco, 화웨이) QOS 설정 방법 (0) | 2021.03.18 |