Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Verificar

Identificar a interface afetada

Identificar interfaces de entrada e de saída

Alocação de buffer

Troubleshooting

Modificar Alocação de Buffer

Modificar Buffers por Fila

Analisar Quedas de Saída com o Wireshark

Abordagens alternativas

Informações Relacionadas

Introdução

Este documento descreve como solucionar problemas de quedas de saída em interfaces de alta velocidade nas plataformas da série Catalyst 9000 baseadas em UADP ASIC.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Conceitos de QoS padrão

- Interface de linha de comando (CLI) QoS modular

- Wireshark

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Tipos de ASIC UADP 2.0 e UADP 3.0

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Software Cisco IOS® XE 16.X ou 17.X

Observação: consulte o guia de configuração apropriado para obter os comandos que são usados para habilitar esses recursos em outras plataformas Cisco.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

Quedas de saída em interfaces de alta velocidade são um problema que pode ocorrer em qualquer ambiente de rede, particularmente quando se trata de interfaces que suportam taxas de transferência de dados de 10 Gbps ou mais. As quedas de saída ocorrem quando os pacotes são descartados pela interface antes de serem transmitidos para a rede.

É geralmente mal entendido como a utilização da interface é interpretada quando as quedas de saída ocorrem em níveis baixos de utilização:

- Quando muito tráfego é enviado de uma única interface, os buffers dessa interface podem ficar sobrecarregados e ocorrem quedas de saída. Uma interface com poucos buffers também pode aumentar a probabilidade de quedas de saída.

- Os descartes de saída também podem ser causados por uma incompatibilidade entre a velocidade da interface e a velocidade do dispositivo conectado. Por exemplo, se uma interface de 10 Gbps estiver conectada a um dispositivo que suporta apenas uma taxa de transferência de dados de 1 Gbps, a interface poderá descartar pacotes se não puder reduzir a taxa de dados para corresponder às capacidades do dispositivo.

No entanto, na grande maioria dos casos, as quedas de saída são causadas pelo tráfego de microburst que esgota os buffers de porta:

- Um microburst se refere a um fenômeno em que uma grande quantidade de tráfego é enviada em um período de tempo muito curto, geralmente dura apenas alguns milissegundos e excede a largura de banda disponível da interface.

- Quando ocorre um microburst, os dispositivos de rede precisam armazenar o tráfego em buffer até que ele possa ser transmitido para a rede. Se o tamanho do buffer for excedido, os pacotes serão descartados.

O tráfego de rede é frequentemente medido pela utilização média de um link (medido de 30 segundos a 5 minutos, dependendo da configuração). Embora essa média mostre um fluxo constante e relativamente uniforme, quando visualizada em uma escala de milissegundos, a utilização da interface é geralmente muito intermitente.

Figura 1. Mostra uma representação visual da causa subjacente dos descartes de saída na interface de alta velocidade.

1. Os fluxos de pacote A, B e C representam grupos de bits em um fluxo.

2. Os fluxos A, B e C são transmitidos através da interface 100G e recebidos no switch do próximo salto.

3. Observe que A e alguns dos bits B são encaminhados com êxito através da interface de saída 10G.

- No entanto, quando o fluxo C chega, o switch armazena em buffer alguns dos bits do fluxo B devido à incapacidade de desenfileirar bits tão rapidamente quanto eles estão chegando.

- O buffer fica cheio e não pode armazenar os bits B restantes e todos os bits no pacote C.

- Se o classificador de entrada determinar que não há espaço para nem mesmo um bit do próximo quadro, ele descartará o pacote inteiro!

4. O fluxo A e alguns B são transmitidos através da interface 10G.

A "Velocidade/Largura de Banda" da interface é um tanto ou quanto um pouco imprópria:

- Largura de banda = dados (bits)/tempo

- Os bits não "aceleram fisicamente" quando atravessam de 10G > 100G > 10G

A diferença de "velocidade" é a capacidade de intercalação/número de vias/número de pulsos por intervalo de tempo, mecanismo de codificação e assim por diante, em relação ao meio (luz/elétrons) indo mais rápido.

Dica: use o comando load-interval <30-600> no modo de configuração de interface para modificar o atraso do intervalo de carga em segundos. (o intervalo de carga representa a frequência com que o switch sonda os contadores de interface).

Verificar

Solucionar problemas de quedas de saída em interfaces de alta velocidade pode ser um processo complexo, mas aqui estão algumas etapas gerais que podem ajudar a identificar e resolver o problema:

Identifique a interface afetada:

- Comece restringindo a interface que apresenta quedas de saída.

- Use o comando show interfaces | include is up|Total output drops saída do comando ou use ferramentas de monitoramento para determinar qual interface enfrenta o problema.

Identificar interfaces de entrada e saída:

- Para verificar a interface para mapeamentos ASIC, execute o comando show platform software fed <switch|ative> ifm mappings.

Verificar alocação de buffer:

- É importante verificar a alocação de buffer e a configuração de interface para as interfaces afetadas.

Verifique os microburts com o Wireshark:

- Quedas de saída em interfaces de alta velocidade podem ser causadas frequentemente por microrajadas de tráfego.

- Use ferramentas de análise de tráfego, como o Wireshark, para monitorar padrões de tráfego e identificar possíveis microintermitências.

Considere uma atualização de hardware:

- Se as etapas anteriores não resolverem o problema, será necessário atualizar o hardware, como a interface, o dispositivo ou a infraestrutura de rede, para lidar com o aumento do tráfego.

Identificar a interface afetada

Para identificar a interface afetada que apresenta quedas de saída, use o comando show interfaces.

- Esse comando fornece informações detalhadas sobre cada interface que inclui estatísticas sobre erros de entrada e saída, pacotes descartados e outras informações críticas.

Para restringir a lista de interfaces e identificar rapidamente a interface afetada, use o comando show interfaces | include is up|Comando Total output drops para filtrar as interfaces down ou admin down e mostrar apenas aquelas que estão ativas e possuem drops.

- Por exemplo, você pode usar esse comando para exibir apenas as interfaces que sofreram quedas de saída.

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--

Dica: use o comando show interfaces e filtre a saída com os critérios apropriados para identificar rápida e facilmente a interface afetada. Execute as etapas necessárias para resolver o problema.

Por padrão, nos Catalyst 9000 Series Switches, as quedas de pacotes de saída são mostradas em bytes, em vez de pacotes. É importante determinar se a quantidade de quedas de saída encontrada teve algum impacto real ou se foi simplesmente causada por tráfego intermitente transitório.

Para calcular a porcentagem do total de bytes de saída transmitidos em uma interface que foram descartados:

- Colete a contagem total de quedas de saída da interface.

- Colete a contagem total de bytes de saída da interface.

- Calcule a porcentagem de quedas de saída. Divida a contagem total de quedas de saída pela contagem total de bytes de saída e multiplicando por 100.

Isso fornece o percentual de bytes de saída que foram descartados na interface, o que pode ajudá-lo a determinar se há um problema de congestionamento ou alocação de buffer que precise ser solucionado, ou se as quedas de saída foram causadas pelo tráfego de microbarramento transitório.

Use o comando showinterface <interface> para coletar as informações.

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--

Total de quedas de saída: 299040207

Total de bytes de saída: 5930422327799

Porcentagem de quedas de saída = 299040207/5930422327799 x 100 = 0,005%

Neste exemplo, o total de descartes de saída representa 0,005% da quantidade total de bytes transmitidos nessa interface nas últimas seis semanas (última limpeza dos contadores 6w1d).

- O número total de pacotes versus o número descartado é menor e não terá nenhum impacto.

Identificar interfaces de entrada e de saída

Para alocar melhor os buffers de software e gerenciar o tráfego nos Catalyst 9000 Series Switches, considere a seleção de interfaces de entrada e saída em ASICs diferentes.

Um buffer soft, também conhecido como buffer dinâmico ou buffer compartilhado, refere-se a uma parte da memória que é dinamicamente alocada para armazenar temporariamente pacotes em períodos de congestionamento ou alta carga de tráfego.

Dica: consulte o documento Compreender a Alocação de Buffer de Fila nos Catalyst 9000 Switches para obter informações detalhadas sobre alocação de buffer nos Catalyst 9000 Series Switches.

Com base na arquitetura de um modelo específico de switches Catalyst 9000, é importante observar que eles frequentemente incorporam vários ASICs responsáveis por várias funções.

Para verificar a interface para mapeamentos ASIC, você pode executar o comando: show platform software fed <switch|ative> ifm mappings

Este exemplo mostra a interface para mapeamentos ASIC. O intervalo de interface TenGigabitEthernet1/0/1 a TenGigabitEthernet1/0/24 é mapeado para ASIC 1, enquanto o restante é mapeado para 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

Alocação de buffer

A alocação de buffer é um fator importante para evitar quedas de saída, pois os buffers são usados para armazenar temporariamente o tráfego que não pode ser encaminhado devido a congestionamento ou outras variáveis. Se não houver buffers suficientes disponíveis, o tráfego será descartado, levando a um desempenho de rede ruim e a possíveis interrupções. Com essa verificação, você pode garantir que o switch tenha espaço de buffer suficiente para lidar com cargas de tráfego altas.

O comando show platform hardware fed switch ative qos queue stats interface <interface> permite que você veja estatísticas por fila em uma interface, o que inclui quantos bytes foram enfileirados nos buffers e quantos bytes foram descartados devido à falta de buffers disponíveis.

Neste exemplo:

- As filas de 0 a 4 estão mantendo o tráfego enfileirado. O tráfego recebido nessa interface é armazenado temporariamente nos buffers até que possa ser transmitido.

- Somente a fila 2 teve tráfego descartado ou descartado (24010607 bytes).

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

Troubleshooting

Modificar Alocação de Buffer

Para aumentar o valor dos buffers soft usados por uma interface, use o comando qos queue-softmax-multiplierno modo de configuração global:

- Especifique um valor no intervalo de 100 a 4800. O valor padrão é 100.

- Esse comando aumenta a capacidade de uma única fila de porta absorver microintermitências.

- Esse comando aumenta os limiares da fila de portas para que a fila de portas possa consumir unidades de buffer adicionais do pool compartilhado.

Esta configuração se aplica a todas as interfaces:

- A alocação de buffer em si pressupõe que as microintermitências não ocorrem em todas as portas do switch ao mesmo tempo.

- Se microintermitências acontecerem em momentos aleatórios, o buffer compartilhado pode dedicar unidades de buffer adicionais para absorvê-las.

Use o comando qos queue-softmax-multiplier<100 4800>no modo de configuração global para modificar a alocação de buffer soft. Se você configurar isso para o valor máximo disponível, ele fornecerá ao switch a maior probabilidade de eliminar ou reduzir quedas de saída. Esta é uma prática recomendada para evitar quedas sempre que possível.

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

<100-4800> multiplier(%)

Use o comando show platform hardware fed ative qos queue config interface <interface>para identificar a alocação de Soft Buffer no Catalyst 9000 Series.

Este exemplo mostra os Soft Buffers padrão alocados em uma interface que negociou a velocidade de 10Gbps em um Catalyst 9500.

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

Este exemplo mostra os Soft Buffers alocados em uma interface que negociou a velocidade de 10 Gbps em um Catalyst 9500 com multiplicador 4800 configurado.

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

Observação: a alocação de buffers de software varia. É possível que a alocação não corresponda à saída acima. A saída de alocação difere, dependendo da plataforma específica usada, das políticas de QoS aplicadas e da velocidade operacional negociada da interface em questão.

Modificar Buffers por Fila

A modificação de buffer por fila pode ser aproveitada para cenários onde você não pode usar o multiplicador SoftMax ou em cenários onde você tenta ajustar os buffers para se ajustar a um perfil de tráfego.

- Para modificar a alocação de buffer de fila do switch em uma base por interface, você deve usar mapas de política.

- Na maioria das circunstâncias, você modifica o mapa de política atual de uma interface e altera os buffers em uma base por classe.

Neste exemplo de interface, vinteFiveGigE 1/0/1 sofreu quedas de saída. Como mostrado no mapa de política de saída do comando que é aplicado a essa interface.

O comando show platform hardware fed switch ative qos queue stats interface <interface> permite que você veja estatísticas por fila em uma interface, o que inclui quantos bytes foram enfileirados nos buffers e quantos bytes foram descartados devido à falta de buffers disponíveis.

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

Para aliviar os descartes de saída nessa interface, com base nos contadores de Enqueue, Q0 a Q1 têm uma taxa de enfileiramento muito baixa, e, portanto, não podem exigir tantos buffers como Q2 e Q3. A ação recomendada é alocar mais buffers para a Fila 2 e a Fila 3, já que essas filas têm uma quantidade maior de tráfego enfileirado em comparação com qualquer outra fila.

- Para modificar a alocação de buffer, você pode usar a configuração queue-buffers ratio <0-100> no mapa de políticas aplicado à interface vinteFiveGigE 1/0/1.

Observação: se esse comando estiver configurado em cada classe na política, ele deverá somar 100. No entanto, se apenas uma única classe for configurada, o sistema subtrairá uniformemente os buffers das outras filas.

Este exemplo mostra como configurar uma proporção de fila-buffers em um mapa de políticas.

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

A partir da versão Cisco IOS XE 17.2.1, os switches baseados em UADP 3.0 (Catalyst 9500 High Performance e Catalyst 9600) podem ser configurados para compartilhar os buffers do Ative Queue Management (AQM) entre os dois núcleos dentro do mesmo ASIC.

- Uma porta configurada com compartilhamento de buffer usa qualquer um dos buffers AQM disponíveis, independentemente dos núcleos para os quais os buffers AQM estão mapeados.

- Isso ajuda a gerenciar picos mais altos de tráfego que teriam saturado o buffer de um único núcleo AQM.

- Você pode ativar esse recurso com o comando qos share-buffer no modo de configuração global.

- Você pode verificar o recurso com o comando show platform hardware fed ative qos queue config interface. Essa é uma configuração global que afeta todo o sistema.

Você pode desativar o compartilhamento de buffer com a forma no do comando, no qos share-buffer.

Cat9k(config)#qos share-buffer

Cat9k(config)#end

Analisar Quedas de Saída com o Wireshark

Para verificar a presença de microintermitências em uma rede, você pode usar uma ferramenta de captura de pacotes como o Wireshark:

- O Wireshark captura pacotes e permite que você analise o tráfego de rede em tempo real ou após a captura.

- Para identificar quais microintermitências ocorrem quando ocorre uma queda com o Wireshark, inicie a captura do pacote na interface afetada e verifique a interface repetidamente até que ocorra uma queda de saída.

- Quando a captura for concluída, abra o arquivo de captura no Wireshark e procure períodos de alto tráfego seguidos por períodos de pouco ou nenhum tráfego. São microestouros em potencial.

Para capturar e analisar eficientemente quedas de saída em uma interface, use estas recomendações:

- EPC (Embedded Packet Capture) não deve ser usado. O EPC limita todo o tráfego a um máximo de 1000 pacotes por segundo (pps), o que pode potencialmente invalidar os dados.

- Um SPAN somente de TX da interface onde as quedas de saída são identificadas é o método recomendado.

- As portas origem e destino devem ter a mesma velocidade, ou a porta destino deve ter uma velocidade mais alta que a porta origem quando você usa o SPAN. Isso garante que a sessão de SPAN não introduza congestionamento de rede adicional ou quedas de pacotes devido a velocidades de porta incompatíveis.

- É importante coletar a sessão de SPAN enquanto os descartes de saída estão sendo incrementados ativamente. Isso garante que você capture o tráfego relevante e possa identificar a causa raiz do microburst. Se a sessão de SPAN for coletada após a ocorrência dos descartes, você não poderá capturar o tráfego relevante.

Para confirmar se esses períodos de alto tráfego são de fato microintermitências, use o recurso de gráfico de E/S do Wireshark. Como o gráfico de E/S exibe uma representação gráfica do tráfego de rede ao longo do tempo, é mais fácil identificar microintermitências. Para criar um gráfico de E/S, vá para Estatísticas > Gráfico de E/S:

Observação: para demonstrar esse procedimento, usamos uma captura de pacote em uma interface de 1 Gbps. No entanto, as etapas são as mesmas para Troubleshooting de quedas de saída em qualquer interface de alta velocidade.

Figura 2. Selecione o gráfico de E/S.

O gráfico a seguir mostra uma linha que representa a quantidade de dados em trânsito ao longo do tempo. Procure os picos no gráfico, que indicam períodos de tráfego intenso. Se esses picos forem seguidos por períodos de pouco ou nenhum tráfego, você possivelmente identificou um microburst.

Figura 3. Mostra o gráfico de E/S da captura de pacotes.

É importante garantir que todos os pacotes sejam selecionados sem nenhum filtro de exibição aplicado. Além disso, selecione a opção Gráfico de linha e defina o Eixo Y como Bits para analisar o tráfego corretamente.

Figura 4. Mostra como selecionar a opção Gráfico de linha e definir o eixo Y como Bits.

Ao analisar uma captura de pacote grande, é crucial identificar o período de tempo específico no qual você está interessado. Por exemplo, nesse cenário, pode-se observar que há uma grande quantidade de tráfego nas proximidades de 30 segundos.

Clicar no pico de um pico no gráfico de E/S faz com que o Wireshark selecione o pacote em segundo plano. Em nosso cenário, os pacotes 79280 e 101896 foram selecionados para criar um subconjunto da captura de pacotes a fim de trabalhar dentro dos timestamps onde a presença de microbursts é suspeita.

Figura 5. Mostra como criar um subconjunto da captura de pacotes que se concentra nos carimbos de data/hora suspeitos da presença de microburst.

Para exportar o primeiro e o último pacotes selecionados para um novo arquivo, certifique-se de selecionar os ícones de opção Intervalo e Capturado.

Figura 6. Mostra como exportar e salvar o subconjunto da captura de pacotes.

Depois de salvar o arquivo, abra-o e navegue de volta para o gráfico de E/S. Verifique se o intervalo está definido como 1ms para representar graficamente os picos vistos em milissegundos.

Figura 7. Mostra o gráfico de E/S do subconjunto exportado da captura de pacotes.

Quando o gráfico é exibido, é importante identificar picos que representam períodos em que o tráfego foi transmitido na taxa de linha por um milissegundo inteiro, o que faz com que o buffer fique cheio e onde quedas de saída poderiam ter sido geradas. Por exemplo, em uma interface de 1 Gbps, isso corresponderia a 1.000.000 bits por milissegundo. Clique no pico de um pico que representa uma possível microrajada. Ele ajuda a identificar o pacote que causou as quedas de saída. Esse pacote pode ser analisado posteriormente para determinar a causa raiz do microburst e tomar ações corretivas.

Figura 8. Mostra como identificar o tráfego potencial de microburst no gráfico de E/S.

Aviso: é importante estar ciente dessa limitação quando você usa o Wireshark ou qualquer outra ferramenta de captura de pacotes em uma interface de alta velocidade. As interfaces de alta velocidade, como 40G e 100G, geram um volume substancial de tráfego de rede que tem o potencial de sobrecarregar os recursos do sistema usados para capturar pacotes. Consequentemente, isso pode levar à perda de pacotes durante o processo de captura e pode afetar a precisão e a integridade dos dados capturados.

Abordagens alternativas

Se você tiver esgotado os recursos alocados para uma fila e ainda experimentar quedas, será necessário considerar opções alternativas para gerenciar o congestionamento. Eles podem incluir:

- Atualize as velocidades da interface. Você pode mudar de 1G para 10G, 10G para 25G ou 40G para aumentar a largura de banda de saída e reduzir a taxa de excesso de assinaturas.

- Altere a plataforma para uma com um buffer maior por fila/por interface.

- Ajuste as configurações do aplicativo para reduzir o tamanho da intermitência que causa quedas de saída.

- Use um programador de enfileiramento para priorizar uma classe de tráfego sobre outra. Esse método prioriza a proteção do tráfego mais importante em detrimento do aumento de quedas para o tráfego menos importante.

- Implemente algoritmos de gerenciamento de congestionamento, como Weighted Random Early Discard (WRED) ou Weighted Tail Drop (WTD), para descartar o tráfego mais cedo. Os limiares de WRED ou WTD podem levar à queda antecipada de tráfego intermitente, resultando na redução automática de janelas de transmissão para clientes finais. Isso permite que outro tráfego menos intermitente encontre congestionamento reduzido, garantindo uma alocação mínima de buffer para diferentes classes de tráfego durante períodos de alto congestionamento.

- Controlar o tráfego mais próximo à origem de um aplicativo conhecido de alta largura de banda, como backups de dados para reduzir a frequência e a gravidade de picos na rede. Isso dá a áreas de baixa largura de banda entre a origem e o destino, localizadas em outro lugar da rede, mais oportunidade de gerenciar com eficiência tanto o tráfego em surtos quanto o tráfego normal da rede.

- Use canais de porta. No entanto, é importante observar que, devido ao hash, há uma possibilidade de vários fluxos serem direcionados para um único membro, o que pode levar a quedas persistentes.

É importante observar que algumas dessas opções exigem configurações mais envolvidas, como a engenharia de tráfego, mas podem oferecer benefícios significativos para reduzir o congestionamento da rede e as quedas de saída.

Informações Relacionadas

- Cisco Catalyst 9000 Switching Platforms: QoS and Queuing White Paper (Plataformas de switching Cisco Catalyst 9000: QoS e enfileiramento)

- Guia de configuração da qualidade de serviço, Cisco IOS XE 17.x

- Matriz de compatibilidade da óptica com o dispositivo da Cisco

- Inovação de suporte: como o Cisco TAC está transformando a documentação e simplificando o autoatendimento

- Suporte Técnico e Documentação - Cisco Systems