Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

O que são quedas de saída?

Tipos de congestionamento

Congestionamento com baixa taxa de transferência

Validar Congestionamento do Buffer

Modificar buffers para resolver quedas de saída

Multiplicador SoftMax

Modificação de buffer por fila

Métodos alternativos para gerenciar o congestionamento

Analisar quedas de saída com o Wireshark

Exibir a taxa de E/S

Exibir a Taxa de E/S em Milissegundos

Introduction

Este documento descreve como solucionar problemas de quedas de saída nas plataformas da série Catalyst 9000.

Prerequisites

Requirements

Para solucionar problemas de Qualidade de Serviço (QoS - Quality of Service) nas plataformas da série Catalyst 9000, você deve entender:

- Conceitos de QoS padrão

- Interface de linha de comando (CLI) QoS modular

Componentes Utilizados

As informações neste documento são baseadas nesta versão de hardware e software, mas a metodologia e a maioria dos comandos podem ser aplicados a outros Catalyst 9000 Series Switches em outro código:

- Cisco Catalyst 9300

- Cisco IOS XE 16.12.3

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

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.

Informações de Apoio

Para obter uma explicação detalhada da QoS nas plataformas da série Catalyst 9000, que inclui configurações de QoS padrão, estrutura de fila e explicações de buffer, consulte o White Paper sobre QoS e Enfileiramento do Catalyst 9000. Consulte o guia de versão recomendado para garantir que você esteja usando o software recomendado mais recente para sua plataforma. Essas recomendações garantem o suporte ao seu software e ajudam a evitar bugs conhecidos em códigos mais antigos. Versões recomendadas para Catalyst

O que são quedas de saída?

O conhecimento da alocação de buffer pode ajudá-lo a entender como o congestionamento do buffer resulta em quedas de saída. O congestionamento ocorre quando a interface de destino tem um número de pacotes que excede sua taxa de saída. Esses pacotes devem ser armazenados no buffer até que possam ser transmitidos. Considere que esses switches têm no máximo 36 MB de buffers por ASIC, que são compartilhados entre todas as portas no ASIC. Embora uma interface de saída possa esvaziar esse buffer na taxa de linha, qualquer cenário que faça com que os pacotes sejam armazenados em buffer em uma taxa maior pode causar congestionamento. O congestionamento pode ocorrer mesmo se a intermitência do tráfego durar apenas uma fração de segundo e pode causar latência no tráfego ou descartes de saída se o buffer for totalmente preenchido.

Observação: o contador de queda de saída exibido em show interface é apresentado em bytes por padrão. Na versão 16.11.1 e posterior, você pode alterar isso para pacotes com a configuração global qos queue-stats-frame-count

Tipos de congestionamento

Como mostrado na imagem Imagem 1, há dois tipos de congestionamento.

Imagem 1. Tipos de congestionamento

Os dois tipos de congestionamento mostrados na Imagem 1 são:

- De vários para um: quando várias portas de origem enviam tráfego para um único destino ao mesmo tempo, a porta de destino pode ficar congestionada com a quantidade de tráfego que recebeu de várias origens.

- Incompatibilidade de velocidade: quando uma porta com velocidade mais alta transmite para uma porta com velocidade mais baixa (por exemplo, 10 Gbps a 1 Gbps), os pacotes devem levar tempo para serem drenados da porta de saída, o que pode resultar em retardo e/ou quedas de pacotes.

Congestionamento com baixa taxa de transferência

As intermitências de tráfego podem causar quedas de saída mesmo quando a taxa de saída da interface é significativamente menor que a capacidade máxima da interface. Por padrão, a média das taxas de saída no comando show interface é calculada em cinco minutos, o que não é adequado para capturar rajadas de curta duração. É melhor calculá-las como média em 30 segundos, embora mesmo nesse cenário uma intermitência de tráfego por milissegundos possa resultar em quedas de saída que não fazem com que a taxa média de 30 segundos aumente. Este documento pode ser usado para solucionar esse problema de qualquer outro tipo de congestionamento que você vir em seu switch da série Catalyst 9000.

Validar Congestionamento do Buffer

Há dois comandos usados para validar o congestionamento do buffer. O primeiro comando é show platform hardware fed switch ative qos queue config interface <interface>. Esse comando permite que você veja a alocação de buffer atual na porta, como mostrado na Imagem 2.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:2 - 1800

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

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

0   1  6   200   7   800  19   475   0     0   3  2400

1   1  5     0   8  1200  19   712   8   300   3  2400

2   1  5     0   6     0   0     0   0     0   3  2400

3   1  5     0   6     0   0     0   0     0   3  2400

4   1  5     0   6     0   0     0   0     0   3  2400

5   1  5     0   6     0   0     0   0     0   3  2400

6   1  5     0   6     0   0     0   0     0   3  2400

7   1  5     0   6     0   0     0   0     0   3  2400

Imagem 2.  Alocação de Buffer de Fila

Você deseja examinar especificamente as colunas Hardmax e Softmax, que mostram o número de buffers que as filas têm disponíveis. Para obter informações sobre o que são esses buffers e como são alocados por padrão, consulte o White Paper sobre QoS e Enfileiramento do Catalyst 9000.

O segundo comando é show platform hardware fed switch ative qos queue stats interface <interface>. Esse comando 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.

9300#show platform hardware fed switch active qos queue stats interface Gig 1/0/1

DATA Port:0 Enqueue Counters

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

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

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

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

0       0                    0                    0            384251797                    0

1       0                    0                    0         488393930284                    0

2       0                    0                    0                    0                    0

3       0                    0                    0                    0                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0                    0

DATA Port:0 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            192308101                    0                    0                    0

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

Imagem 3. Estatísticas de Buffer da Fila com Quedas

Como mostrado na Imagem 3, a Fila 0 e a Fila 1 têm bytes enfileirados, mas é a Fila 1 que sofre quedas na coluna Drop-TH2. Essas informações indicam que o tráfego da Fila 0 não foi afetado por esse congestionamento e que a causa do congestionamento é especificamente o tráfego da Fila 1.

Modificar buffers para resolver quedas de saída

Multiplicador SoftMax

Para aumentar o número de buffers que cada fila pode solicitar do pool compartilhado, aumente o limite SoftMax com a configuração qos queue-softmax-multiplier <100 - 1200>. O valor mais alto é 1200 e aumenta em um múltiplo de 12 a capacidade de uma fila de porta única para 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. Como mostrado na Imagem 4, a configuração e a alocação de buffer aumentada.

9300(config)#qos queue-softmax-multiplier 1200

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 14400

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

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

0   1  6   200   9  9600   2   600   0     0   1 15000

1   1  5     0  10 14400   2   900   1   450   1 15000

2   1  5     0   6     0   0     0   0     0   1 15000

3   1  5     0   6     0   0     0   0     0   1 15000

4   1  5     0   6     0   0     0   0     0   1 15000

5   1  5     0   6     0   0     0   0     0   1 15000

6   1  5     0   6     0   0     0   0     0   1 15000

7   1  5     0   6     0   0     0   0     0   1 15000

Imagem 4. Configuração de fila com multiplicador SoftMax de 1200

Essa é uma configuração comum usada como um método rápido para resolver quedas de saída. Na Imagem 4, observe que essa configuração se aplica a todas as filas não prioritárias em todas as interfaces. A alocação de buffer em si pressupõe que as microintermitências não ocorram em todas as portas do switch ao mesmo tempo. Se microrajadas acontecerem em momentos aleatórios, o buffer compartilhado pode dedicar unidades de buffer adicionais para absorvê-las.

Modificação de buffer 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, a interface GigabitEthernet1/0/48 sofreu quedas de saída. Como mostrado na Imagem 5, o mapa de políticas de saída é aplicado a essa interface.

policy-map MYPOL

class Voice

priority level 1 percent 20

class Video

priority level 2 percent 10

class Control

bandwidth percent 10

class Data

bandwidth percent 5

class class-default

Imagem 5. Exemplo de mapa de política

Esse mapa de política tem 5 mapas de classe, o que resulta em um total de 5 filas de saída na interface. Cada classe tem um número default de buffers alocados a ela com base em seu nível de prioridade. A imagem 6 exibe as alocações de buffer atuais.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 600

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

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

0   1  7   100   9   100   0     0   0     0   3   800

1   1  7   100  10   400  19   237   0     0   3   800

2   1  5     0  10   400  19   237   8   100   3   800

3   1  5     0  10   400  19   237   8   100   3   800

4   1  5     0  10   400  19   237   8   100   3   800

5   1  5     0   6     0   0     0   0     0   3   800

6   1  5     0   6     0   0     0   0     0   3   800

7   1  5     0   6     0   0     0   0     0   3   800

Imagem 6. Configuração de Buffer de Fila com a Política de Exemplo

Como essa interface experimentou descartes de saída, examine as estatísticas de enfileiramento da interface para ver onde está o congestionamento.

9300#show platform hardware fed switch active qos queue stats interface gigabitEthernet 1/0/48

DATA Port:0 Enqueue Counters

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

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

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

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

0       0                    0                    0               489094                    0

1       0                    0                    0              4846845                    0

2       0                    0                    0             89498498                    0

3       0                    0                    0          21297827045                    0

4       0                    0                    0             74983184                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0                    0

DATA Port:0 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                    0                    0                    0                    0

3                    0                    0              3854484                    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

Imagem 7. Estatísticas de Buffer da Fila com Quedas com uma Política de Exemplo

A imagem 7 mostra que a Fila 3 tem mais tráfego enfileirado do que qualquer outra fila e também é a única que sofreu quedas de saída. Como o número da fila começa em 0, a Fila 3 é mapeada para o 4º mapa de classe, class Data.

Para aliviar os descartes nessa fila, aloque mais buffers para a Fila 3. Para alterar essa alocação de buffer, use a configuração queue-buffers ratio <0-100> no mapa de políticas. Se configurado em cada classe na política, ele deve somar 100. Se você configurar apenas uma única classe com esse comando, o sistema tentará subtrair uniformemente os buffers das outras filas.

Na Imagem 8, a classe Data foi configurada com a razão de fila-buffers 40.

policy-map MYPOL

class Voice

priority level 1 percent 20

class Video

priority level 2 percent 10

class Control

bandwidth percent 10

class Data

bandwidth percent 5

queue-buffers ratio 40

Imagem 8. Exemplo de mapa de política com buffers de fila modificados

Na Imagem 9, você pode ver que a classe Data agora tem 40% dos buffers de interface, 800 buffers no total.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 1200

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

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

0   1  7    75   9    75   0     0   0     0   3  1600

1   1  7    75  10   300  19   178   0     0   3  1600

2   1  5     0  10   300  19   178   8    75   3  1600

3   1  5     0   7   800  19   475   8   200   3  1600

4   1  5     0  10   300  19   178   8    75   3  1600

5   1  5     0   6     0   0     0   0     0   3  1600

6   1  5     0   6     0   0     0   0     0   3  1600

7   1  5     0   6     0   0     0   0     0   3  1600

Imagem 9. Configuração de Buffer de Fila com a Política de Exemplo Atualizada

Isso também faz com que as outras filas tenham menos buffers Softmax. É importante fazer essas alterações de buffer em pequenos incrementos para garantir que as alterações não resultem em quedas de saída nas outras filas.

Com essa alteração feita, verifique o status da fila e veja se os descartes ainda são incrementados nessa ou em qualquer outra fila. Se os descartes continuarem, modifique a configuração de buffer de fila ainda mais até que os descartes de saída sejam resolvidos.

Métodos alternativos para gerenciar o congestionamento

A QoS é principalmente um método para priorizar o tráfego e não é uma solução para cada cenário de queda de saída. Há alguns cenários em que uma modificação dos buffers de fila não é suficiente para resolver todos os descartes de saída. Nesses cenários, você pode gerenciar o congestionamento de várias outras maneiras:

- Reduzir a taxa de excesso de assinaturas

- Isso inclui métodos que aumentam a largura de banda de saída, como canais de porta ou Equal Cost Multipath (ECMP), mas também pode exigir configurações mais envolvidas, como engenharia de tráfego

- Usar um agendador de enfileiramento para priorizar o tráfego

- Embora um programador de fila não pare o congestionamento, ele protege seu tráfego importante contra o impacto do congestionamento

- Use algoritmos de gerenciamento de congestionamento, como Weighted Random Early Discard (WRED) ou Weighted Tail Drop (WTD), para descartar parte do tráfego anteriormente

- Controlar o tráfego na entrada para reduzir o tráfego na saída

Analisar quedas de saída com o Wireshark

O Wireshark é uma ferramenta útil para identificar rajadas de tráfego que causam congestionamento e quedas de buffer.  Se você ABRANGER uma interface na direção de saída enquanto ela sofre quedas, o Wireshark poderá criar um gráfico da taxa de saída para ver quando e qual tráfego disparou as quedas. Isso é especialmente útil ao identificar quedas de saída em cenários de baixo throughput.

Exibir a taxa de E/S

Depois de abrir sua captura de SPAN com o Wireshark, selecione Statistics (Estatísticas) e I/O Graph (Gráfico de E/S), conforme demonstrado na Imagem 10.

Imagem 10. Selecione o gráfico de E/S

Uma vez selecionado, o Wireshark gera um gráfico do tráfego em bits por segundo. A imagem 11 mostra um gráfico de exemplo para uma interface enquanto ela apresentava quedas de saída.

Imagem 11. Bits do gráfico de E/S/milissegundo

O gráfico da Imagem 11 indica que a interface tinha um throughput máximo que mal excedia 80 Mbps. A exibição gráfica padrão não é suficientemente granular para identificar pequenas rajadas de tráfego que causam quedas de pacotes. É uma média da taxa de tráfego por segundo. Para entender como essa taxa poderia causar congestionamento no buffer, considere o throughput em uma escala de milissegundos.

Uma interface Gigabit pode encaminhar 1.000.000.000 bits por segundo. Uma vez convertido em milissegundos, isso equivale a 1.000.000 (ou 10^6) bits por milissegundo.

Quando a taxa de interface vai além da velocidade de encaminhamento da interface, os switches devem armazenar esses pacotes em buffer, o que resulta em quedas de congestionamento e saída.

Exibir a Taxa de E/S em Milissegundos

O Wireshark permite que o usuário faça um gráfico da Taxa de E/S como bits por milissegundo. Para fazer isso, reduza o Intervalo de 1 s para 1 ms e clique em Redefinir para exibir o gráfico corretamente. Essa etapa é mostrada na Imagem 12.

Imagem 12. Reduza o intervalo para 1ms e redefina o gráfico

O gráfico atualizado exibe com mais precisão a taxa de E/S real da interface. Quando a taxa atinge ou excede 10^6 bits por milissegundo, o switch enfrenta congestionamento ou quedas de saída.  A imagem 13 mostra o gráfico de E/S atualizado de uma interface que apresentou quedas de saída.

Imagem 13 Bits do gráfico de E/S/milissegundo

A imagem 13 mostra que há vários picos de tráfego que atendem ou excedem o limite de 10^6. O tráfego estaria sujeito a buffer e seria descartado se excedesse nosso tamanho de buffer de saída.

Observação: se o destino de SPAN estiver conectado por uma interface de 1 Gbps, a taxa de E/S no Wireshark não poderá exceder essa taxa de 10^6 bits por milissegundo, independentemente da taxa de interface de origem. A interface de destino de SPAN, em vez de armazenar em buffer ou descartar esses pacotes. É comum ver o patamar do gráfico de E/S nesse throughput máximo ou apresentar uma taxa média de tráfego que pareça ir mais alto.