목차

소개

방법론

출력 삭제 확인

드롭이 유니캐스트 또는 멀티캐스트인지 확인

사용할 출력 버퍼 확인

활성 버퍼 모니터링 확인

능동적으로 증가하는 카운터

Brief 출력

자세한 출력

임계값을 초과할 때 로그 생성

주목할 만한 Cisco 버그 ID

자주 묻는 질문

부록 - 기능 정보

버퍼 관리

예약

멀티캐스트 슬로우 수신기

활성 버퍼 모니터링

하드웨어 구현

소프트웨어 구현

소개

이 문서에서는 Nexus 3500 플랫폼에서 삭제된 트래픽 유형과 이 트래픽이 삭제되는 OB(출력 버퍼)의 문제를 해결하기 위해 사용하는 명령에 대해 설명합니다.

방법론

1. 출력 삭제 확인

2. 드롭이 유니캐스트 또는 멀티캐스트인지 확인

3. 사용할 출력 버퍼 확인

4. 활성 버퍼 모니터링 확인

출력 삭제 확인

트래픽이 이그레스 방향으로 드롭되었는지 확인하려면 물리적 인터페이스 통계를 확인합니다.TX 방향의 "output discard" 카운터가 증가하는지 또는 0이 아닌지 확인합니다.

Nexus3548# show interfce Eth1/7

Ethernet1/7 is up

Dedicated Interface

Hardware: 100/1000/10000 Ethernet, address: a44c.116a.913c (bia a44c.116a.91ee)

Description: Unicast Only

Internet Address is 1.2.1.13/30

MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec

reliability 255/255, txload 35/255, rxload 1/255

Encapsulation ARPA

full-duplex, 1000 Mb/s, media type is 1G

Beacon is turned off

Input flow-control is off, output flow-control is off

Rate mode is dedicated

Switchport monitor is off

EtherType is 0x8100

Last link flapped 00:03:48

Last clearing of "show interface" counters 00:03:55

1 interface resets

30 seconds input rate 200 bits/sec, 0 packets/sec

30 seconds output rate 0 bits/sec, 0 packets/sec

Load-Interval #2: 5 minute (300 seconds)

input rate 40 bps, 0 pps; output rate 139.46 Mbps, 136.16 Kpps

RX

1 unicast packets  118 multicast packets  0 broadcast packets

119 input packets  9830 bytes

0 jumbo packets  0 storm suppression bytes

0 runts  0 giants  0 CRC  0 no buffer

0 input error  0 short frame  0 overrun   0 underrun  0 ignored

0 watchdog  0 bad etype drop  0 bad proto drop  0 if down drop

0 input with dribble  0 input discard

0 Rx pause

TX

23605277 unicast packets  0 multicast packets  0 broadcast packets

23605277 output packets  3038908385 bytes

0 jumbo packets

0 output errors  0 collision  0 deferred  0 late collision

0 lost carrier  0 no carrier  0 babble 11712542 output discard

0 Tx pause

드롭이 유니캐스트 또는 멀티캐스트인지 확인

인터페이스가 트래픽을 삭제한다고 판단되면 삭제된 트래픽이 멀티캐스트 또는 유니캐스트인지 확인하기 위해 show queuing interface <x/y> 명령을 입력합니다.6.0(2)A3(1) 이전 릴리스의 출력은 다음과 같습니다.

Nexus3548# show queuing interface Eth1/7

Ethernet1/7 queuing information:

TX Queuing

qos-group  sched-type  oper-bandwidth

0       WRR            100

RX Queuing

Multicast statistics:

Mcast pkts dropped                      : 0

Unicast statistics:

qos-group 0

HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Ucast pkts dropped                      : 11712542

릴리스 6.0(2)A3(1) 이상에서 출력은 다음과 같습니다.

Nexus3548# show queuing interface Eth1/7

Ethernet1/7 queuing information:

qos-group  sched-type  oper-bandwidth

0       WRR            100

Multicast statistics:

Mcast pkts dropped                      : 0

Unicast statistics:

qos-group 0

HW MTU: 1500 (1500 configured)

drop-type: drop, xon: 0, xoff: 0

Statistics:

Ucast pkts dropped                      : 11712542

참고:포트에 대해 멀티캐스트 슬로우 수신기가 구성된 경우, 기능 정보는 를, 하드웨어 제한으로 인해 show queuing interface Eth<x/y> 명령을 사용하여 삭제를 추적하지 않습니다.Cisco 버그 ID CSCuj21006을 참조하십시오.

사용할 출력 버퍼 확인

Nexus 3500에는 이그레스 방향으로 사용되는 버퍼 풀이 3개 있습니다.show hardware internal mtc-usd info port-mapping 명령의 출력에서 매핑 정보를 제공합니다.

Nexus3548# show hardware internal mtc-usd info port-mapping

OB Ports to Front Ports:

========= OB0 =========    ========= OB1 =========    ========= OB2 =========

45 47 21 23 09 11 33 35    17 19 05 07 41 43 29 31    13 15 37 39 25 27 01 03

46 48 22 24 10 12 34 36    18 20 06 08 42 44 30 32    14 16 38 40 26 28 02 04

Front Ports to OB Ports:

=OB2= =OB1= =OB0= =OB2=    =OB1= =OB0= =OB2= =OB1=    =OB0= =OB2= =OB1= =OB0=

12 14 04 06 08 10 00 02    00 02 04 06 08 10 12 14    12 14 04 06 08 10 00 02

13 15 05 07 09 11 01 03    01 03 05 07 09 11 13 15    13 15 05 07 09 11 01 03

Front port numbering (i.e. "01" here is e1/1):

=OB2= =OB1= =OB0= =OB2=    =OB1= =OB0= =OB2= =OB1=    =OB0= =OB2= =OB1= =OB0=

01 03 05 07 09 11 13 15    17 19 21 23 25 27 29 31    33 35 37 39 41 43 45 47

02 04 06 08 10 12 14 16    18 20 22 24 26 28 30 32    34 36 38 40 42 44 46 48

Note: Text in Red font is _not_ CLI output, it's purely to help those reading

the document faster match the actual front port instead of having to manually

count up.

결과의 첫 번째 부분은 OB 풀 0이 45, 46, 47, 48 등과 같은 전면 포트에서 사용되고 OB1은 전면 포트 17, 18 등에서 사용됨을 나타냅니다.

결과의 두 번째 부분은 Eth1/1이 OB2 포트 12에 매핑되고, Eth1/2가 OB2 포트 13에 매핑되는 등입니다.

토론 중인 포트 Eth1/7은 OB1에 매핑됩니다.

자세한 내용은 이 문서의 버퍼 관리 섹션을 참조하십시오.

활성 버퍼 모니터링 확인

이 기능에 대한 자세한 내용은 Cisco Nexus 3548 Active Buffer Monitoring 백서 및 이 문서의 섹션을 참조하십시오.

능동적으로 증가하는 카운터

출력이 능동적으로 증가되는 것을 폐기하는 경우 이 명령으로 ABM(Active Buffer Monitoring)을 활성화합니다.이 명령을 사용하면 유니캐스트 또는 멀티캐스트를 모니터링할 수 있지만 둘 다 모니터링할 수는 없습니다.또한 샘플링 간격 및 임계값을 구성할 수 있습니다.

hardware profile buffer monitor [unicast|multicast] {[sampling

] |

[threshold

]}

Brief 출력

ABM이 활성화되면 이 명령으로 결과를 볼 수 있습니다.

Nexus3500# show hardware profile buffer monitor interface e1/7 brief

Brief CLI issued at: 09/30/2013 19:43:50

Maximum buffer utilization detected

1sec     5sec    60sec     5min      1hr

------   ------   ------   ------   ------

Ethernet1/7       5376KB   5376KB   5376KB      N/A      N/A

이러한 결과는 OB1 버퍼의 6MB 중 5.376MB가 지난 60초 동안 Eth1/7을 떠난 유니캐스트 트래픽에서 사용되었음을 나타냅니다.

자세한 출력

Nexus3500# show hardware profile buffer monitor interface Eth1/7 detail

Detail CLI issued at: 09/30/2013 19:47:01

Legend -

384KB  - between   1 and 384KB of shared buffer consumed by port

768KB  - between 385 and 768KB of shared buffer consumed by port

307us  - estimated max time to drain the buffer at 10Gbps

Active Buffer Monitoring for Ethernet1/7 is: Active

KBytes                 384  768 1152 1536 1920 2304 2688 3072 3456 3840 4224 4608 4992 5376 5760 6144

us @ 10Gbps            307  614  921 1228 1535 1842 2149 2456 2763 3070 3377 3684 3991 4298 4605 4912

---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

09/30/2013 19:47:01      0    0    0    0    0    0    0    0    0    0    0    0    0  250    0    0

09/30/2013 19:47:00      0    0    0    0    0    0    0    0    0    0    0    0    0  252    0    0

09/30/2013 19:46:59      0    0    0    0    0    0    0    0    0    0    0    0    0  253    0    0

09/30/2013 19:46:58      0    0    0    0    0    0    0    0    0    0    0    0    0  250    0    0

09/30/2013 19:46:57      0    0    0    0    0    0    0    0    0    0    0    0    0  250    0    0

09/30/2013 19:46:56      0    0    0    0    0    0    0    0    0    0    0    0    0  250    0    0

09/30/2013 19:46:55      0    0    0    0    0    0    0    0    0    0    0    0    0  251    0    0

09/30/2013 19:46:54      0    0    0    0    0    0    0    0    0    0    0    0    0  251    0    0

09/30/2013 19:46:53      0    0    0    0    0    0    0    0    0    0    0    0    0  250    0    0

09/30/2013 19:46:52      0    0    0    0    0    0    0    0    0    0    0    0    0  253    0    0

09/30/2013 19:46:51      0    0    0    0    0    0    0    0    0    0    0    0    0  249    0    0

...

각 행의 정보는 두 번째 간격으로 기록됩니다.각 열은 버퍼 사용량을 나타냅니다.명령 결과에서 언급했듯이 열 "384"에 0이 아닌 값이 보고되면 ABM에서 OB 사용량을 폴링할 때 버퍼 사용량이 0~384KB바이트 사이임을 의미합니다.0이 아닌 숫자는 사용량을 보고한 횟수입니다.

이러한 결과는 Eth1/7의 지난 10초 동안 OB1의 평균 사용량은 초당 249 - 253회 사이의 5.376MB임을 나타냅니다. 이 트래픽의 버퍼를 지우려면 4,298마이크로초(us)가 소요됩니다.

임계값을 초과할 때 로그 생성

드롭 카운터와 버퍼 사용량이 주기적으로 증가하면 임계값을 설정하고 임계값을 초과할 때 로그 메시지를 생성할 수 있습니다.

logging level mtc-usd 5

hardware profile buffer monitor unicast sampling 10 threshold 4608

이 명령은 10나노초 간격으로 유니캐스트 트래픽을 모니터링하도록 설정되며, 이 트래픽이 버퍼의 75%를 초과하면 로그를 생성합니다.

또한 매시간마다 ABM 통계 및 인터페이스 카운터 출력을 수집하여 bootflash 파일에 추가하기 위해 스케줄러를 생성할 수도 있습니다.이 예는 멀티캐스트 트래픽에 대한 것입니다.

hardware profile buffer monitor multicast

feature scheduler

scheduler job name ABM

show hardware profile buffer monitor detail >> ABMDetail.txt

show clock >> ABMBrief.txt

show hardware profile buffer monitor brief >> ABMBrief.txt

show clock >> InterfaceCounters.txt

show interface counters errors >> InterfaceCounters.txt

scheduler schedule name ABM

time start now repeat 1:0

job name ABM

주목할 만한 Cisco 버그 ID

- Cisco 버그 ID CSCum21350:빠른 포트 플랩으로 인해 동일한 QoS 버퍼의 모든 포트가 모든 TX 멀티캐스트/브로드캐스트 트래픽을 삭제합니다.이는 릴리스 6.0(2)A1(1d) 이상에서 고정되어 있습니다.

- Cisco 버그 ID CSCuq96923:멀티캐스트 버퍼 블록이 중단되어 이그레스 멀티캐스트/브로드캐스트가 삭제됩니다.이 문제는 아직 조사 중이다.

- Cisco 버그 ID CSCva20344:Nexus 3500 버퍼 블록/잠금 - TX 멀티캐스트 또는 브로드캐스트가 없습니다.재현할 수 없는 문제이며 릴리스 6.0(2)U6(7), 6.0(2)A6(8) 및 6.0(2)A8(3)에서 수정될 수 있습니다.

- Cisco 버그 ID CSCvi93997:  Cisco Nexus 3500 스위치 출력 버퍼 블록이 중단되었습니다.이는 릴리스 7.0(3)I7(8) 및 9.3(3)에서 수정되었습니다.

자주 묻는 질문

ABM이 성능 또는 레이턴시에 영향을 미칩니까?

아니요. 이 기능은 디바이스의 레이턴시 또는 성능에 영향을 미치지 않습니다.

낮은 ABM 하드웨어 폴링 간격의 영향은 무엇입니까?

기본적으로 하드웨어 폴링 간격은 4밀리초입니다.이 값을 10나노초까지 낮게 구성할 수 있습니다.낮은 하드웨어 폴링 간격 때문에 성능이나 레이턴시에 영향을 미치지 않습니다.소프트웨어가 1초마다 폴링하기 전에 히스토그램 카운터를 오버플로하지 않도록 4밀리초의 기본 하드웨어 폴링이 선택됩니다.하드웨어 폴링 간격을 낮추면 255개 샘플의 하드웨어 카운터가 포화 상태가 될 수 있습니다.CPU 및 메모리 제한으로 인해 낮은 하드웨어 폴링을 확인하기 위해 디바이스에서 1초 미만의 소프트웨어 폴링을 처리할 수 없습니다.이 백서에는 낮은 하드웨어 폴링 간격 및 활용 사례의 예가 있습니다.

부록 - 기능 정보

버퍼 관리

- 3개의 OB 블록에서 18MB 패킷 버퍼 공유:

- ~4MB 예약됨:구성된 MTU(Maximum Transmission Unit)를 기준으로 크기(포트당 합계 2 x MTU 크기 x 활성화된 QoS 그룹 수)

- ~14MB 공유:총 버퍼의 나머지 부분

- ~767KB의 OB:CPU 목적지 패킷의 경우 0

- 각 OB에 대해 6MB는 16개의 포트(show hardware internal mtc-usd info port-mapping 명령)로 공유됩니다.

예약

3계층 스케줄링:

- 유니캐스트 및 멀티캐스트

- 동일한 스케줄링 체계의 트래픽 클래스

- 전체 체계에서 트래픽 클래스

멀티캐스트 슬로우 수신기

이 다이어그램에서:

- 1 G Eth1/40에 지속적인 혼잡이 도입되었습니다.

- 버퍼 블록의 다른 멀티캐스트 수신기(Eth1/1 - 3)는 멀티캐스트 스케줄링 동작으로 인해 영향을 받습니다.  다른 버퍼 블록의 수신기는 영향을 받지 않습니다.

- 혼잡하지 않은 포트에서 트래픽 손실을 방지하기 위해 e1/40에 "Multicast slow-receiver"를 적용할 수 있습니다.

- "Multicast slow-receiver"는 Eth1/40의 10G 속도로 멀티캐스트를 유출합니다. 정체된 포트에서 드롭이 발생할 것으로 예상됩니다.

- 하드웨어 프로필 멀티캐스트 slow-receiver port <x> 명령으로 구성됩니다.

활성 버퍼 모니터링

이 기능의 개요는 Cisco Nexus 3548 Active Buffer Monitoring 백서를 참조하십시오.

하드웨어 구현

- ASIC에는 18개의 버킷이 있으며 각 버킷은 버퍼 사용률의 범위(예: 0-384KB, 385-768KB 등)에 해당합니다.

- ASIC는 4밀리초마다 모든 포트의 버퍼 사용률을 폴링합니다(기본값).  이 ASIC 폴링 간격은 최소 10나노초로 구성할 수 있습니다.

- 각 하드웨어 폴링 간격의 버퍼 사용률에 따라 해당 범위에 대한 버킷 카운터가 증가합니다. 즉, 포트 25가 버퍼의 500KB를 소비할 경우 버킷 #2(385-768KB) 카운터가 증가합니다.

- 이 버퍼 사용률 카운터는 각 인터페이스에 대해 히스토그램 형식으로 유지됩니다.

- 각 버킷은 8비트로 표시되므로 카운터가 255에서 로그아웃되며 소프트웨어가 데이터를 읽으면 재설정됩니다.

소프트웨어 구현

- 소프트웨어가 모든 히스토그램 카운터를 다운로드하고 지우기 위해 1초마다 ASIC를 폴링합니다.

- 이러한 히스토그램 카운터는 60분 동안 메모리에서 1초 단위로 유지됩니다.

- 또한 버퍼 히스토그램을 매시간마다 부트플래시에 복제하도록 합니다. 이를 분석기에 복사하여 추가 분석을 수행할 수 있습니다.

- 따라서 모든 포트에 대해 2시간 분량의 버퍼 히스토그램 데이터, 메모리에서 가장 최근 1시간, 부트플래시에서 두 번째 시간을 유지합니다.