목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

다음을 확인합니다.

영향을 받는 인터페이스 식별

인바운드 및 아웃바운드 인터페이스 식별

버퍼 할당

문제 해결

버퍼 할당 수정

대기열별 버퍼 수정

Wireshark로 출력 삭제 분석

대체 접근 방식

관련 정보

소개

이 문서에서는 UADP ASIC 기반 Catalyst 9000 시리즈 플랫폼의 고속 인터페이스에서 발생하는 출력 저하를 해결하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 표준 QoS 개념

- 모듈형 QoS CLI(Command Line Interface)

- 와이어샤크

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- UADP 2.0 및 UADP 3.0 ASIC 유형

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS® XE 16.X 또는 17.X 소프트웨어

참고: 다른 Cisco 플랫폼에서 이러한 기능을 활성화하는 데 사용되는 명령에 대해서는 해당 구성 가이드를 참조하십시오.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

고속 인터페이스의 출력 감소는 모든 네트워크 환경에서 발생할 수 있는 문제이며, 특히 10Gbps 이상의 데이터 전송 속도를 지원하는 인터페이스를 다룰 때 특히 그렇습니다. 패킷이 네트워크로 전송되기 전에 인터페이스에 의해 삭제될 경우 출력 삭제가 발생합니다.

낮은 사용률에서 출력 저하가 발생할 때 인터페이스 사용률을 해석하는 방법을 잘못 이해하는 경우가 많습니다.

- 단일 인터페이스에서 너무 많은 트래픽이 전송되는 경우 해당 인터페이스의 버퍼가 오버플로우되고 출력 드랍이 발생할 수 있습니다. 버퍼가 너무 적은 인터페이스는 출력 중단 확률을 높일 수도 있습니다.

- 인터페이스의 속도와 연결된 장치의 속도 간의 불일치로 인해 출력 드랍이 발생할 수도 있습니다. 예를 들어, 10Gbps 인터페이스가 1Gbps의 데이터 전송 속도만 지원하는 디바이스에 연결된 경우, 디바이스의 기능에 맞게 데이터 속도를 늦출 수 없는 경우 인터페이스에서 패킷을 삭제할 수 있습니다.

그러나 대부분의 경우 포트 버퍼를 소진한 마이크로버스트 트래픽으로 인해 출력 저하가 발생합니다.

- 마이크로버스트란 매우 짧은 시간 내에 많은 양의 트래픽이 전송되는 현상을 말하며, 일반적으로 몇 밀리초만 지속되고 인터페이스의 가용 대역폭을 초과합니다.

- 마이크로버스트가 발생하면 네트워크 디바이스는 트래픽을 네트워크로 전송할 수 있을 때까지 버퍼링해야 합니다. 버퍼 크기가 초과되면 패킷이 삭제됩니다.

네트워크 트래픽은 링크의 평균 사용률로 측정되는 경우가 많습니다(컨피그레이션에 따라 30초~5분 동안 측정). 이 평균은 안정적이고 비교적 균일한 흐름을 보이지만, 밀리초 단위의 인터페이스 사용률을 보면 매우 과부하 상태인 경우가 많습니다.

그림 1. 고속 인터페이스의 출력 중단이 발생하는 근본적인 원인을 시각적으로 보여 줍니다.

다이어그램에 따르면

1. 패킷 흐름 A, B, C는 흐름의 비트 그룹을 나타냅니다.

2. 플로우 A, B, C는 100G 인터페이스를 통해 전송되어 다음 홉 스위치에서 수신된다.

3. A와 일부 B 비트가 10G 이그레스 인터페이스에서 성공적으로 포워딩되었는지 확인합니다.

- 그러나 플로우 C가 도착하면 스위치가 B에서 일부 비트를 버퍼링했는데 이는 비트가 도착하는 즉시 해당 비트를 뺄 수 없기 때문입니다.

- 버퍼는 가득 차서 패킷 C의 나머지 B 비트와 모든 비트를 모두 보유할 수 없습니다.

- 인그레스(ingress) 분류자가 다음 프레임의 한 비트라도 사용할 공간이 없다고 판단하면 전체 패킷이 삭제됩니다.

4. 흐름 A와 흐름 B 중 일부는 10G 인터페이스를 통해 전송됩니다.

인터페이스 속도/대역폭은 다음과 같은 이유로 어느 정도 잘못 표기됩니다.

- 대역폭 = 데이터(비트)/시간

- 비트는 10G > 100G > 10G에서 이동할 때 "물리적으로 속도 증가"하지 않습니다.

속도 차이는 미디어(빛/전자)가 더 빠르게 진행하는 것과 비교하여 인터리빙 기능/레인 수/시간 간격당 펄스 수, 인코딩 메커니즘 등입니다.

팁: 인터페이스 컨피그레이션 모드에서 load-interval <30-600> 명령을 사용하여 로드 간격 지연을 초 단위로 수정합니다. (로드 간격은 스위치가 인터페이스 카운터를 폴링하는 빈도를 나타냅니다.)

다음을 확인합니다.

고속 인터페이스의 출력 삭제 문제를 해결하는 것은 복잡한 프로세스일 수 있지만, 문제를 식별하고 해결하는 데 도움이 될 수 있는 몇 가지 일반적인 단계가 있습니다.

1단계. 영향을 받는 인터페이스를 식별합니다.

- 먼저 출력 삭제를 경험하는 인터페이스를 좁힙니다.

- show 인터페이스를 사용합니다. | include is up|Total output drops 명령 출력 또는 모니터링 툴을 사용하여 어떤 인터페이스에서 문제가 발생하는지 확인합니다.

2단계. 인바운드 및 아웃바운드 인터페이스 식별:

- ASIC 매핑에 대한 인터페이스를 확인하려면 show platform software fed <switch|active> ifm mappings 명령을 실행합니다.

3단계. 버퍼 할당 확인:

- 영향을 받는 인터페이스에 대한 버퍼 할당 및 인터페이스 컨피그레이션을 확인하는 것이 중요합니다.

4단계. Wireshark로 마이크로버트를 확인합니다.

- 고속 인터페이스의 출력 중단은 종종 트래픽의 마이크로버스트로 인해 발생할 수 있습니다.

- Wireshark와 같은 트래픽 분석 툴을 사용하여 트래픽 패턴을 모니터링하고 잠재적인 마이크로버스트를 식별합니다.

5단계. 하드웨어 업그레이드를 고려합니다.

- 이전 단계에서 문제가 해결되지 않으면 인터페이스, 디바이스 또는 네트워크 인프라와 같은 하드웨어를 업그레이드하여 늘어난 트래픽을 처리해야 합니다.

영향을 받는 인터페이스 식별

출력 삭제를 경험하는 영향을 받는 인터페이스를 식별하려면 show interfaces 명령을 사용합니다.

- 이 명령은 입력 및 출력 오류, 삭제된 패킷 및 기타 중요 정보에 대한 통계를 포함하는 각 인터페이스에 대한 자세한 정보를 제공합니다.

인터페이스 목록을 좁히고 영향을 받는 인터페이스를 빠르게 식별하려면 show interfaces를 사용합니다 | include is up|Total output drops 명령을 실행하여 인터페이스를 아래로 필터링하거나 admin down을 수행하여 활성 상태이고 드랍이 있는 인터페이스만 표시합니다.

- 예를 들어 이 명령을 사용하여 출력 삭제를 경험한 인터페이스만 표시할 수 있습니다.

Cat9k(config)#show interfaces | in is up|Total output drops

HundredGigE1/0/1 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 54845

HundredGigE1/0/10 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 1540231

--snip--

팁: 영향을 받는 인터페이스를 쉽고 빠르게 식별할 수 있도록 show interfaces 명령을 사용하고 적절한 기준으로 출력을 필터링합니다. 문제를 해결하는 데 필요한 단계를 수행합니다.

기본적으로 Catalyst 9000 Series 스위치에서 이그레스 패킷 삭제는 패킷 대신 바이트로 표시됩니다. 발견된 출력 감소량이 실제 영향을 미쳤는지 아니면 일시적인 버스트 트래픽에 의해 발생한 것인지 확인하는 것이 중요합니다.

삭제된 인터페이스에서 전송된 총 출력 바이트의 백분율을 계산하려면

- 인터페이스에서 총 출력 삭제 수를 수집합니다.

- 인터페이스에서 총 출력 바이트 수를 수집합니다.

- 출력 삭제 비율을 계산합니다. 총 출력 삭제 수를 총 출력 바이트 수로 나누고 100을 곱합니다.

이는 인터페이스에서 삭제된 출력 바이트의 백분율을 제공하며, 이를 통해 해결해야 하는 혼잡 또는 버퍼 할당 문제가 있는지 또는 출력 삭제가 일시적인 마이크로버스 트래픽으로 인해 발생했는지 여부를 확인할 수 있습니다.

정보를 수집하려면 showinterface <interface> 명령을 사용합니다.

Cat9k#show interfaces twentyFiveGigE 1/0/41

TwentyFiveGigE1/0/41 is up, line protocol is up (connected)

Hardware is Twenty Five Gigabit Ethernet, address is dc77.4c8a.4289 (bia dc77.4c8a.4289)

MTU 1500 bytes, BW 25000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 3/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 10Gb/s, link type is auto, media type is SFP-10GBase-AOC1M

input flow-control is on, output flow-control is off

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:06, output 00:00:10, output hang never

Last clearing of "show interface" counters 6w1d

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 299040207

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 767000 bits/sec, 155 packets/sec

30 second output rate 14603000 bits/sec, 1819 packets/sec

931864194 packets input, 572335285416 bytes, 0 no buffer

Received 933005 broadcasts (933005 multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 0 multicast, 0 pause input

0 input packets with dribble condition detected

1067891106 packets output, 5930422327799 bytes, 0 underruns

--snip--

총 출력 삭제 수: 299040207

총 출력 바이트 수: 5930422327799

출력 감소율 = 299040207/5930422327799 x 100 = 0.005%

이 예에서 총 출력 삭제는 지난 6주 동안 이 인터페이스에서 전송된 총 바이트 수의 0.005%를 나타냅니다(카운터 6w1d의 마지막 지우기).

- 총 패킷 수와 삭제된 패킷 수는 중요하지 않으므로 영향을 주지 않습니다.

인바운드 및 아웃바운드 인터페이스 식별

Catalyst 9000 Series 스위치에서 소프트 버퍼를 더 잘 할당하고 트래픽을 관리하려면 서로 다른 ASIC에서 인바운드 및 아웃바운드 인터페이스를 선택하는 것을 고려해 보십시오.

동적 버퍼 또는 공유 버퍼라고도 하는 소프트 버퍼는 혼잡 또는 높은 트래픽 로드 기간에 패킷을 임시로 저장하기 위해 동적으로 할당되는 메모리의 일부를 나타냅니다.

팁: Catalyst 9000 시리즈 스위치의 버퍼 할당에 대한 자세한 내용은 Catalyst 9000 스위치의 대기열 버퍼 할당 이해 문서를 참조하십시오.

특정 Catalyst 9000 스위치 모델의 아키텍처에 따라 다양한 기능을 담당하는 여러 ASIC를 통합하는 경우가 많습니다.

ASIC 매핑에 대한 인터페이스를 확인하려면 다음 명령을 실행할 수 있습니다. show platform software fed <switch|active> ifm 매핑

이 예에서는 ASIC 매핑에 대한 인터페이스를 보여 줍니다. 인터페이스 범위 TenGigabitEthernet1/0/1~TenGigabitEthernet1/0/24는 ASIC 1에 매핑되고 나머지는 ASIC 0에 매핑됩니다.

Cat9k#show platform software fed switch active ifm mappings

Interface                 IF_ID    Inst Asic Core Port SubPort Mac  Cntx LPN  GPN  Type Active

TenGigabitEthernet1/0/1   0x9        3   1   1    0      0      11   0    1    1    NIF  Y

TenGigabitEthernet1/0/2   0xa        3   1   1    1      0      10   1    2    2    NIF  Y

TenGigabitEthernet1/0/3   0xb        3   1   1    2      0      9    2    3    3    NIF  Y

TenGigabitEthernet1/0/4   0xc        3   1   1    3      0      8    3    4    4    NIF  Y

TenGigabitEthernet1/0/5   0xd        3   1   1    4      0      7    4    5    5    NIF  Y

TenGigabitEthernet1/0/6   0xe        3   1   1    5      0      6    5    6    6    NIF  Y

TenGigabitEthernet1/0/7   0xf        3   1   1    6      0      5    6    7    7    NIF  Y

TenGigabitEthernet1/0/8   0x10       3   1   1    7      0      4    7    8    8    NIF  Y

TenGigabitEthernet1/0/9   0x11       3   1   1    8      0      3    8    9    9    NIF  Y

TenGigabitEthernet1/0/10  0x12       3   1   1    9      0      2    9    10   10   NIF  Y

TenGigabitEthernet1/0/11  0x13       3   1   1    10     0      1    10   11   11   NIF  Y

TenGigabitEthernet1/0/12  0x14       3   1   1    11     0      0    11   12   12   NIF  Y

TenGigabitEthernet1/0/13  0x15       2   1   0    12     0      11   0    13   13   NIF  Y

TenGigabitEthernet1/0/14  0x16       2   1   0    13     0      10   1    14   14   NIF  Y

TenGigabitEthernet1/0/15  0x17       2   1   0    14     0      9    2    15   15   NIF  Y

TenGigabitEthernet1/0/16  0x18       2   1   0    15     0      8    3    16   16   NIF  Y

TenGigabitEthernet1/0/17  0x19       2   1   0    16     0      7    4    17   17   NIF  Y

TenGigabitEthernet1/0/18  0x1a       2   1   0    17     0      6    5    18   18   NIF  Y

TenGigabitEthernet1/0/19  0x1b       2   1   0    18     0      5    6    19   19   NIF  Y

TenGigabitEthernet1/0/20  0x1c       2   1   0    19     0      4    7    20   20   NIF  Y

TenGigabitEthernet1/0/21  0x1d       2   1   0    20     0      3    8    21   21   NIF  Y

TenGigabitEthernet1/0/22  0x1e       2   1   0    21     0      2    9    22   22   NIF  Y

TenGigabitEthernet1/0/23  0x1f       2   1   0    22     0      1    10   23   23   NIF  Y

TenGigabitEthernet1/0/24  0x20       2   1   0    23     0      0    11   24   24   NIF  Y

TenGigabitEthernet1/0/25  0x21       1   0   1    24     0      11   0    25   25   NIF  Y

TenGigabitEthernet1/0/26  0x22       1   0   1    25     0      10   1    26   26   NIF  Y

TenGigabitEthernet1/0/27  0x23       1   0   1    26     0      9    2    27   27   NIF  Y

TenGigabitEthernet1/0/28  0x24       1   0   1    27     0      8    3    28   28   NIF  Y

TenGigabitEthernet1/0/29  0x25       1   0   1    28     0      7    4    29   29   NIF  Y

TenGigabitEthernet1/0/30  0x26       1   0   1    29     0      6    5    30   30   NIF  Y

TenGigabitEthernet1/0/31  0x27       1   0   1    30     0      5    6    31   31   NIF  Y

TenGigabitEthernet1/0/32  0x28       1   0   1    31     0      4    7    32   32   NIF  Y

TenGigabitEthernet1/0/33  0x29       1   0   1    32     0      3    8    33   33   NIF  Y

TenGigabitEthernet1/0/34  0x2a       1   0   1    33     0      2    9    34   34   NIF  Y

TenGigabitEthernet1/0/35  0x2b       1   0   1    34     0      1    10   35   35   NIF  Y

TenGigabitEthernet1/0/36  0x2c       1   0   1    35     0      0    11   36   36   NIF  Y

TenGigabitEthernet1/0/37  0x2d       0   0   0    36     0      11   11   37   37   NIF  Y

TenGigabitEthernet1/0/38  0x2e       0   0   0    37     0      10   10   38   38   NIF  Y

TenGigabitEthernet1/0/39  0x2f       0   0   0    38     0      9    9    39   39   NIF  Y

TenGigabitEthernet1/0/40  0x30       0   0   0    39     0      8    8    40   40   NIF  Y

TenGigabitEthernet1/1/1   0x31       0   0   0    40     0      0    19   41   41   NIF  N

TenGigabitEthernet1/1/2   0x32       0   0   0    41     0      0    18   42   42   NIF  N

TenGigabitEthernet1/1/3   0x33       0   0   0    42     0      0    17   43   43   NIF  N

TenGigabitEthernet1/1/4   0x34       0   0   0    43     0      0    16   44   44   NIF  N

TenGigabitEthernet1/1/5   0x35       0   0   0    44     0      0    15   45   45   NIF  N

TenGigabitEthernet1/1/6   0x36       0   0   0    45     0      0    14   46   46   NIF  N

TenGigabitEthernet1/1/7   0x37       0   0   0    46     0      0    13   47   47   NIF  N

TenGigabitEthernet1/1/8   0x38       0   0   0    47     0      0    12   48   48   NIF  N

FortyGigabitEthernet1/1/1 0x39       0   0   0    48     0      4    4    49   49   NIF  N

FortyGigabitEthernet1/1/2 0x3a       0   0   0    49     0      0    0    50   50   NIF  N

버퍼 할당

버퍼는 혼잡 또는 기타 변수로 인해 전달될 수 없는 트래픽을 임시로 저장하는 데 사용되므로 버퍼 할당은 출력 삭제를 방지하는 데 중요한 요소입니다. 사용 가능한 버퍼가 충분하지 않으면 트래픽이 손실되어 네트워크 성능이 저하되고 중단될 수 있습니다. 이 확인을 통해 스위치에 높은 트래픽 로드를 처리할 수 있는 충분한 버퍼 공간이 있는지 확인할 수 있습니다.

show platform hardware fed switch active qos queue stats interface <interface> 명령을 사용하면 인터페이스에 대한 대기열별 통계를 볼 수 있습니다. 여기에는 버퍼에 삽입된 바이트 수와 사용 가능한 버퍼가 부족하여 삭제된 바이트 수가 포함됩니다.

이 예에서는 다음을 수행합니다.

- 대기열 0~4는 현재 대기열에 추가된 트래픽을 대기 중입니다. 이 인터페이스에서 수신된 트래픽은 전송될 수 있을 때까지 버퍼에 임시로 저장됩니다.

- 대기열 2만 삭제되거나 삭제된 트래픽을 경험했습니다(24010607바이트).

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/41

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

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

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

High Watermark Soft Buffers:  Port Monitor Disabled

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

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

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

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

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

0       0                    0             40588200              9368282                    0

1       0                    0             23584521               789524                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0            487852543                    0

4       0                    0                    0              5483512                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

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

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

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

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607 <-- (drops on Q2)  0                    0                    0

3                    0                    0                    0                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

문제 해결

버퍼 할당 수정

인터페이스에서 사용되는 소프트 버퍼의 값을 늘리려면 글로벌 컨피그레이션 모드에서 qos queue-softmax-multiplier 명령을 사용하여 100~4800 범위의 값을 지정합니다. 기본값은 100입니다.

- 이 명령은 단일 포트 대기열이 마이크로버스트를 흡수하는 능력을 높입니다.

- 이 명령은 포트 대기열이 공유 풀에서 추가 버퍼 단위를 사용할 수 있도록 포트 대기열 임계값을 늘립니다.

이 컨피그레이션은 모든 인터페이스에 적용됩니다.

- 버퍼 할당 자체에서는 마이크로버스트가 스위치의 모든 포트에서 동시에 발생하지 않는다고 가정합니다.

- 마이크로버스트가 임의의 순간에 발생하는 경우, 공유 버퍼는 이들을 흡수하기 위해 추가적인 버퍼 유닛을 전용할 수 있다.

소프트 버퍼 할당을 수정하려면 글로벌 컨피그레이션 모드에서 qos queue-softmax-multiplier<100 4800> 명령을 사용합니다. 이 값을 사용 가능한 최대값으로 구성하면 출력 삭제를 제거하거나 줄일 수 있는 가장 높은 확률을 스위치에 제공합니다. 가능하면 떨어뜨리지 않도록 하는 것이 좋습니다.

Cat9k(config)#qos queue-softmax-multiplier ?

<100-4800> multiplier(%)

show platform hardware fed active qos queue config interface <interface> 명령을 사용하여 Catalyst 9000 Series에서 소프트 버퍼 할당을 식별합니다.

이 예에서는 Catalyst 9500에서 10Gbps 속도로 협상한 인터페이스에 할당된 기본 소프트 버퍼를 보여줍니다.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:5 - 4320 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  6   480   8  1920  16   960   0     0   3  5760      En <-- 1920 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  11  2880  16  1440   8   720   3  5760      En <-- 2880 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   3  5760      En

3   1  5     0   6     0   0     0   0     0   3  5760      En

4   1  5     0   6     0   0     0   0     0   3  5760      En

5   1  5     0   6     0   0     0   0     0   3  5760      En

6   1  5     0   6     0   0     0   0     0   3  5760      En

7   1  5     0   6     0   0     0   0     0   3  5760      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

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

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

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

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

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

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

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

0       0    1912       0       0    2137       0       0    2400       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0    2295       0       0    2565       0       0    2880       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

이 예에서는 4800 승수가 구성된 Catalyst 9500에서 10Gbps 속도로 협상된 인터페이스에 할당된 소프트 버퍼를 보여줍니다.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:4 - 42000 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  6   480  10 42000   1  1312   0     0   4 42000      En <-- 42000 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  10 42000   1  1312   1  1312   4 42000      En <-- 42000 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   4 42000      En

3   1  5     0   6     0   0     0   0     0   4 42000      En

4   1  5     0   6     0   0     0   0     0   4 42000      En

5   1  5     0   6     0   0     0   0     0   4 42000      En

6   1  5     0   6     0   0     0   0     0   4 42000      En

7   1  5     0   6     0   0     0   0     0   4 42000      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

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

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

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

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

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

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

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

0       0   33851       0       0   37833       0       0   42480       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0   33468       0       0   37406       0       0   42000       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

참고: 소프트 버퍼 할당은 다양합니다. 할당이 위의 결과와 일치하지 않을 수 있습니다. 할당 출력은 사용된 특정 플랫폼, 적용된 QoS 정책, 해당 인터페이스의 협상된 작동 속도에 따라 달라집니다.

대기열별 버퍼 수정

대기열별 버퍼 수정은 SoftMax 승수를 사용할 수 없는 경우 또는 트래픽 프로필에 맞게 버퍼를 미세 조정하려는 경우에 활용할 수 있습니다.

- 인터페이스별로 스위치에서 대기열 버퍼 할당을 수정하려면 정책 맵을 사용해야 합니다.

- 대부분의 경우 인터페이스의 현재 정책 맵을 수정하고 클래스별로 버퍼를 변경합니다.

이 예제 인터페이스에서 25FiveGigE 1/0/1의 출력이 감소했습니다. 명령에 표시된 대로 이 인터페이스에 적용되는 이그레스(egress) 정책 맵을 출력합니다.

show platform hardware fed switch active qos queue stats interface <interface> 명령을 사용하면 인터페이스에 대한 대기열별 통계를 볼 수 있습니다. 여기에는 버퍼에 얼마나 많은 바이트를 넣었는지, 사용 가능한 버퍼가 없어서 얼마나 많은 바이트를 삭제했는지 등이 포함됩니다.

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/1

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

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

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

High Watermark Soft Buffers:  Port Monitor Disabled

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

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

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

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

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

0       0                    0                    0                   82                    0

1       0                    0                    0                 7517                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0           7174010710                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

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

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

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

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607                    0                    0                    0

3                    0                    0             20071103                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

대기열에 넣기 카운터를 기준으로 이 인터페이스의 출력 삭제를 줄이기 위해 Q0~Q1은 대기열에 넣기 비율이 매우 낮으므로 Q2 및 Q3만큼 많은 버퍼를 필요로 할 수 없습니다. 이러한 대기열은 다른 대기열에 넣기 트래픽의 양이 더 많으므로 대기열 2 및 대기열 3에 더 많은 버퍼를 할당하는 것이 좋습니다.

- 버퍼 할당을 수정하려면 twentyFiveGigE 1/0/1 인터페이스에 적용되는 정책 맵의 대기열 버퍼 비율 <0-100> 컨피그레이션을 사용할 수 있습니다.

참고: 이 명령이 정책의 각 클래스에 구성된 경우 최대 100을 추가해야 합니다. 그러나 단일 클래스만 구성된 경우 시스템은 다른 큐에서 버퍼를 균등하게 뺍니다.

이 예에서는 정책 맵에서 큐-버퍼 비율을 구성하는 방법을 보여줍니다.

Cat9k(config)#policy-map test

Cat9k(config-pmap)# class Voice

Cat9k(config-pmap-c)# priority level 1

Cat9k(config-pmap-c)# queue-buffers ratio 5

Cat9k(config-pmap-c)# class Video

Cat9k(config-pmap-c)# bandwidth remaining percent 50

Cat9k(config-pmap-c)# queue-buffers ratio 15

Cat9k(config-pmap-c)# class BuisnessCritical

Cat9k(config-pmap-c)# bandwidth remaining percent 30

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 3

Cat9k(config-pmap-c)# class class-default

Cat9k(config-pmap-c)# bandwidth remaining percent 20

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 4

Cisco IOS XE 17.2.1 릴리스에서 UADP 3.0(Catalyst 9500 고성능 및 Catalyst 9600) 기반 스위치는 동일한 ASIC 내의 두 코어 간에 AQM(Active Queue Management) 버퍼를 공유하도록 구성할 수 있습니다.

- 버퍼 공유로 구성된 포트는 AQM 버퍼가 매핑되는 코어에 관계없이 사용 가능한 AQM 버퍼를 사용합니다. 이렇게 하면 단일 AQM 코어의 버퍼를 채웠을 더 높은 트래픽 버스트를 관리할 수 있습니다.

- 글로벌 컨피그레이션 모드에서 qos share-buffer 명령으로 이 기능을 활성화할 수 있습니다.

- show platform hardware fed active qos queue config interface 명령을 사용하여 이 기능을 확인할 수 있습니다. 이는 전체 시스템에 영향을 주는 전역 컨피그레이션입니다.

이 명령의 no 형식, no qos share-buffer로 버퍼 공유를 비활성화할 수 있습니다.

Cat9k(config)#qos share-buffer

Cat9k(config)#end

Wireshark로 출력 삭제 분석

네트워크에 마이크로버스트가 있는지 확인하려면 Wireshark와 같은 패킷 캡처 툴을 사용할 수 있습니다.

- Wireshark는 패킷을 캡처하며, 실시간 또는 캡처 후 네트워크 트래픽을 분석할 수 있습니다.

- Wireshark에서 드롭이 발생할 때 어떤 마이크로버스트가 발생하는지 식별하려면 해당 인터페이스에서 패킷 캡처를 시작하고 출력 드롭이 발생할 때까지 인터페이스를 반복적으로 확인합니다.

- 캡처가 완료되면 Wireshark에서 캡처 파일을 열고 트래픽이 많은 기간 다음에 트래픽이 적거나 없는 기간을 찾습니다. 이것들은 마이크로버스트의 잠재성입니다.

인터페이스에서 출력 삭제를 효과적으로 캡처하고 분석하려면 다음 권장 사항을 사용하십시오.

- EPC(Embedded Packet Capture)는 사용할 수 없습니다. EPC는 모든 트래픽을 최대 1000pps(packets per second)로 제한하며, 이로 인해 데이터가 무효화될 수 있습니다.

- 출력 드랍이 식별되는 인터페이스의 TX 전용 SPAN이 권장되는 방법입니다.

- SPAN을 사용할 경우 소스 포트와 목적지 포트의 속도가 같아야 하거나, 목적지 포트의 속도가 소스 포트보다 빨라야 합니다. 이렇게 하면 SPAN 세션에서 포트 속도 불일치로 인해 추가 네트워크 혼잡 또는 패킷 드랍이 발생하지 않습니다.

- 출력 삭제가 활발하게 증가하는 동안 SPAN 세션을 수집하는 것이 중요합니다. 이렇게 하면 관련 트래픽을 캡처하고 마이크로버스트의 근본 원인을 식별할 수 있습니다. 삭제 발생 후 SPAN 세션이 수집되면 관련 트래픽을 캡처할 수 없습니다.

이러한 높은 트래픽 기간이 실제로 마이크로버스트인지 확인하려면 Wireshark I/O 그래프 기능을 사용합니다. I/O 그래프는 시간의 경과에 따른 네트워크 트래픽을 그래픽으로 표시하므로 마이크로버스트를 쉽게 식별할 수 있습니다. I/O 그래프를 생성하려면 Statistics(통계) > I/O Graph(I/O 그래프)로 이동합니다.

참고: 이 절차를 보여주기 위해 1Gbps 인터페이스에서 수행된 패킷 캡처를 사용했습니다. 그러나 이 단계는 모든 고속 인터페이스에서 출력 삭제를 트러블슈팅하는 데 사용됩니다.

그림 2. I/O 그래프 선택

다음 그래프는 시간의 경과에 따른 전송 중인 데이터의 양을 나타내는 선을 보여줍니다. 그래프에서 트래픽이 많은 기간을 나타내는 스파이크를 확인합니다. 이러한 스파이크 뒤에 트래픽이 적거나 없는 기간이 오는 경우, 마이크로버스트가 발견되었을 수 있습니다.

그림 3. 패킷 캡처의 I/O 그래프를 보여줍니다.

표시 필터가 적용되지 않은 상태에서 모든 패킷이 선택되었는지 확인하는 것이 중요합니다. 또한 Line Graph 옵션을 선택하고 Y-Axis를 Bits로 설정하여 트래픽을 적절히 분석합니다.

그림 4. Line Graph 옵션을 선택하고 Y축을 Bits로 설정하는 방법을 보여 줍니다.

대규모 패킷 캡처를 분석할 때는 관심이 있는 특정 기간을 식별해야 합니다. 예를 들어 이 시나리오에서는 30초 부근에 많은 양의 트래픽이 있음을 관찰할 수 있습니다.

I/O 그래프에서 스파이크의 피크를 클릭하면 Wireshark가 백그라운드에서 해당 패킷을 선택합니다. 이 시나리오에서는 마이크로버스트의 존재가 의심되는 타임스탬프 내에서 작동하도록 패킷 79280 및 101896을 선택하여 패킷 캡처의 하위 집합을 생성했습니다.

그림 5. Microburst 프레즌스의 의심되는 타임스탬프에 초점을 맞춘 패킷 캡처의 하위 집합을 생성하는 방법을 보여줍니다.

선택한 첫 번째 패킷과 마지막 패킷을 새 파일로 내보내려면 Range 및 Captured 라디오 아이콘을 선택합니다.

그림 6. 패킷 캡처의 하위 집합을 내보내고 저장하는 방법을 보여 줍니다.

파일을 저장한 후 파일을 열고 I/O 그래프로 다시 이동합니다. 밀리초 단위로 나타나는 스파이크를 그래프로 나타내려면 간격이 1ms로 설정되어야 합니다.

그림 7. 패킷 캡처의 내보낸 하위 집합에 대한 I/O 그래프를 보여 줍니다.

그래프가 표시될 때 트래픽이 최대 밀리초 동안 라인 레이트로 전송된 기간을 나타내는 스파이크를 식별해야 합니다. 이 경우 버퍼가 꽉 차고 출력 드랍이 생성될 수 있는 지점이 됩니다. 예를 들어 1Gbps 인터페이스에서 이는 1,000,000bits per milliseconds에 해당합니다.

잠재적인 마이크로버스트를 나타내는 스파이크의 피크를 클릭합니다. 출력 삭제를 발생시킨 패킷을 식별하는 데 도움이 됩니다. 그런 다음 이 패킷을 추가로 분석하여 마이크로버스트의 근본 원인을 파악하고 수정 조치를 취할 수 있습니다.

그림 8. I/O 그래프에서 잠재적인 마이크로버스트 트래픽을 식별하는 방법을 보여 줍니다.

경고: 고속 인터페이스에서 Wireshark 또는 기타 패킷 캡처 툴을 사용할 경우 이 제한 사항에 유의해야 합니다. 40G 및 100G와 같은 고속 인터페이스는 패킷 캡처에 사용되는 시스템 리소스를 과도하게 사용할 수 있는 네트워크 트래픽을 상당히 많이 생성합니다. 따라서 캡처 프로세스 중에 패킷이 삭제될 수 있으며, 캡처된 데이터의 정확성과 완전성에 영향을 미칠 수 있습니다.

대체 접근 방식

대기열에 할당된 리소스를 모두 사용하고도 계속 삭제될 경우, 혼잡 관리를 위한 대체 옵션을 고려해야 합니다. 여기에는 다음이 포함될 수 있습니다.

- 인터페이스 속도 업그레이드 1G에서 10G, 10G에서 25G 또는 40G로 이동하여 이그레스 대역폭을 늘리고 오버서브스크립션 비율을 줄일 수 있습니다.

- 플랫폼을 대기열당/인터페이스당 버퍼가 더 큰 플랫폼으로 변경합니다.

- 출력이 중단되는 버스트의 크기를 줄이도록 애플리케이션 설정을 조정합니다.

- 대기열 스케줄러를 사용하여 한 클래스의 트래픽을 다른 클래스보다 우선 순위를 지정합니다. 이 방법은 덜 중요한 트래픽에 대해 더 많은 삭제를 희생하면서 더 중요한 트래픽을 보호하는 데 우선 순위를 둡니다.

- WRED(Weighted Random Early Discard) 또는 WTD(Weighted Tail Drop)와 같은 혼잡 관리 알고리즘을 구현하여 트래픽을 더 일찍 삭제합니다. WRED 또는 WTD 임계값은 버스트 트래픽의 조기 감소로 이어질 수 있으므로 최종 클라이언트의 전송 윈도우가 자동으로 단축됩니다. 이렇게 하면 다른 덜 과부하 트래픽에서 정체 현상이 줄어들어, 정체가 심한 기간 동안 서로 다른 트래픽 클래스에 대해 최소 버퍼 할당을 보장할 수 있습니다.

- 알려진 고대역폭 애플리케이션의 소스에 가장 가까운 경찰 트래픽(예: 데이터 백업)을 제공하여 네트워크에서 폭발이 발생하는 빈도와 심각도를 줄입니다. 따라서 네트워크의 다른 위치에 있는 소스와 대상 간의 대역폭이 낮은 영역이 되므로 과부하 트래픽과 일반 네트워크 트래픽을 모두 효과적으로 관리할 수 있는 기회가 늘어납니다.

- Port-channels를 사용합니다. 그러나 해싱으로 인해 여러 개의 플로우가 단일 멤버로 전송될 수 있으며, 이는 지속적인 삭제를 초래할 수 있습니다.

이러한 옵션 중 일부는 트래픽 엔지니어링과 같이 더욱 관여된 컨피그레이션이 필요하지만, 네트워크 혼잡 및 출력 저하를 완화할 수 있는 상당한 이점을 제공할 수 있습니다.

관련 정보

- Cisco Catalyst 9000 스위칭 플랫폼: QoS 및 큐잉 백서

- Cisco IOS XE 17.x 서비스 품질 컨피그레이션 가이드

- Cisco Optics-to-Device 호환성 매트릭스

- 혁신 지원: Cisco TAC에서 문서를 혁신하고 셀프 서비스를 간소화하는 방법

- 기술 지원 및 문서 − Cisco Systems