Nexus 9000 TAHUSD 버퍼 Syslog 및 혼잡 이해
이 문서에서는 NX-OS 소프트웨어를 실행하는 Cisco Scale ASIC가 장착된 Cisco Nexus 9000 시리즈 스위치의 대기열 처리 및 버퍼링에 관해 설명합니다.
www.cisco.com
난해한 로그 :
TAHUsD-SLOT4-4-BUFFER_THRESHOLD_EXCEEDED :
Module 4 Instance 0 Pool group buffer 90 percent threshold is exceeded
해당 시스템 로그의 원인은 OverSubscription ( 트래픽의 병목 현상)
ASIC 슬라이스 버퍼 사용률이 90%에 도달하면 스위치는 버퍼의 공간이 비어질 때까지 Egress 하는 추가 트래픽을 Drop 한다.
1. 스위치의 동작과 아키텍처 구조 요약
- 스위치의 역할
→ 들어온 패킷의 MAC/IP 주소를 보고, 전달할지 말지 판단한 뒤, 알맞은 포트로 보낸다. - 스위치 구성 영역
→ 크게 세 가지로 나뉜다:- Control Plane: 라우팅, 스패닝트리 등 결정 (Supervisor 모듈)
- Data Plane: 실제 패킷 처리 (Line Card, ASIC)
- Management Plane: 설정 및 모니터링
- 포워딩 처리
→ 패킷 포워딩은 Data Plane에서 ASIC 칩이 처리한다. CPU가 아닌 하드웨어 기반 처리로 매우 빠르다.
* QOS, ACL, Buffering 도 처리한다. - ASIC 내부 구조
→ ASIC 안에는 TCAM이라는 특수 메모리가 있어서 주소, 포트, 규칙 등을 고속으로 비교해 필터링이나 정책 적용을 한다.
2. 라인카드에 탑재된 ASIC 하드웨적 사양비교
- N9K-X97160YC-EX는 Nexus 9500 시리즈용 모듈형 라인카드로,
Cisco Cloud Scale ASIC이 탑재되어 고속 패킷 처리를 수행한다. - Cisco는 자체 설계한 ASIC을 EX, FX, GX 계열로 구분하며,
**라인카드 모델명 뒤의 접미사(EX/FX/GX)**에 따라 어떤 ASIC이 탑재됐는지 알 수 있다. - 예)
- EX 계열: LSE (Cloud Scale ASIC 1세대)
- FX 계열: LS1800FX
- GX 계열: LS6400GX
- 각 ASIC은 지원 가능한 포트 수가 다르다.
예를 들어 LSE는 ASIC 1개당 최대 72 x 25G, 18 x 100G 포트를 처리할 수 있다.
3. N9K-X97160YC-EX 라인카드의 ASIC 구성
- 라인카드 모델마다 탑재된 ASIC 개수는 고정되어 있고, 변경 불가하다.
- 2개의 ASIC (LSE) 이 탑재되어 있고 , ASIC당 2개의 Slice로 구분되며 각각 18.7MB의 버퍼가 할당되어 있다.
- 2개의 유닛(ASIC)과 2개의 슬라이스가 있는 경우 인스턴스 ID는 다음과 같을 수 있습니다.
- 유닛 0, 슬라이스 0을 인스턴스 0이라고 함
- 유닛 0, 슬라이스 1을 인스턴스 1이라고 함
- 유닛 1, 슬라이스 0을 인스턴스 2라고 함
- 유닛 1, 슬라이스 1을 인스턴스 3이라고 함
show interface hardware-mappings
4. BUFFER_THRESHOLD_EXCEEDED 시스템 로그 이해
Module 4 Instance 0 Pool group buffer 90 percent threshold is exceeded
: 라인카드 4번 Slot 의 인스턴스 0번 (유닛 0, 슬라이스 0) OverSubscription 발생
현상 분석을 위해
show hardware internal buffer info pkt-stats 명령어 사용.
특정 모듈 또는 인스턴스의 버퍼 사용량 및 패킷 처리 상태를 상세히 표시하는 내부 디버깅 명령어
---> ASIC 슬라이스 버퍼가 가득 차서 새 패킷을 수락할 수 없어 Discard 된 패킷 수는
show interface counter errors 의 Outdiscards 패킷 수 확인
----> 라인카드의 ASIC 0 (포트 1/1 ~ 1/12)에서 트래픽이 과도하게 ‘들어와서’,
ASIC 내부 처리 지연으로 Ingress buffer가 가득 찼다는 뜻