Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

Configurar limite de fila

Diferenças com RSP3 e NCS 520

Teste de laboratório de limite de fila (QL), diferenças entre bytes e percentual

Escopo e parâmetros do teste

Procedimento de teste

Exemplo

Resultados do teste de laboratório

Percentual de QL versus bytes com pacotes de 64 bytes

Percentual de QL versus bytes com pacotes de 200 bytes

Percentual de QL versus bytes com pacotes de 300 bytes

Percentual de QL versus bytes com pacotes de 518 bytes

Percentual de QL versus bytes com pacotes de 800 bytes

Percentual de QL versus bytes com pacotes de 1024 bytes

Percentual de QL versus bytes com pacotes de 1.400 bytes

Relação entre quedas e tamanho do pacote

Diferença entre Bytes Equivalentes e Valores Percentuais

Conclusões

Como aproximar os valores percentuais em cenários de tráfego real

Como verificar o uso do buffer de microburst

Introduction

Este documento descreve como lidar com microintermitências em roteadores ASR 920, que são frequentemente a causa de quedas de pacotes de saída de interface. Em detalhes, é mostrada a diferença entre o uso de bytes e percentual com o comando queue-limit.

Prerequisites

Requirements

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

Roteadores ASR série 920

Políticas de QoS

Componentes Utilizados

As informações neste documento são baseadas em um roteador ASR 920 que executa a versão de software Cisco IOS-XE 16.9.6.

O IXIA é usado como um gerador de tráfego do teste de laboratório.

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.

Informações de Apoio

Microintermitências são conhecidas como pequenos picos no tráfego de rede. Em redes de Acesso do Provedor de Serviços, por exemplo, isso geralmente ocorre em cenários de incompatibilidade de velocidade onde um fluxo de tráfego entra no roteador a partir de uma interface de alta velocidade, como 10 Gigabit Ethernet (GE), e sai através de uma interface de baixa velocidade, como 1 GE.

O problema mais comum que os microbutsts causam nos roteadores ASR 920 é a queda de pacotes de interface na direção da saída. Isso acontece quando há bursts na interface de entrada que são maiores que a taxa da interface de saída, por um período de tempo muito curto (ordem de milissegundos). Durante esse tempo, os pacotes precisam ser colocados em buffer.

Em plataformas ASR 920 / RSP2, o buffer padrão alocado para filas em cada interface 1 GE é de 48 KB, enquanto para as filas em cada interface 10 GE é de 120 KB.

Além disso, há um buffer compartilhado disponível de 11,75 MB. Quando o buffer de interface padrão não é suficiente para acomodar um burst de pacotes, o buffer compartilhado pode ser usado.

Para habilitar o uso do buffer compartilhado para uma interface, é necessário configurar uma política de QoS nessa interface, que define o parâmetro queue-limit.

Configurar limite de fila

Este é um exemplo de configuração do limite de fila para a interface GE 0/0/1:

class-map match-all DUMMY

match qos-group 99  <--- it can be any unused group

policy-map QUEUE-LIMIT

class DUMMY

class class-default

queue-limit percent 5

interface GigabitEthernet 0/0/1

service-policy output QUEUE-LIMIT

Essa política não corresponde a nenhum tráfego e, portanto, também não tem impacto sobre ela. Tudo o que essa política faz é aumentar o buffer de fila da interface GE 0/0/1.

O comando match qos-group 99 é necessário porque não é suportado para configurar queue-limit em uma classe não-folha, então você precisa usar um mapa de classe fictício como uma classe pai para configurar o comando queue-limit sob o padrão de classe folha:

ASR-920-1(config)#policy-map QUEUE-LIMIT

ASR-920-1(config-pmap)#class class-default

ASR-920-1(config-pmap-c)# queue-limit percent 5

QOS: queue-limit command not supported in non-leaf classes

queue-limit: platform params check fail

O limite de fila pode ser definido de diferentes maneiras:

(config-pmap-c)#queue-limit ?

<1-2097152> in bytes, <1-1677721> in us, <1-8192000> in packets by default

percent % of threshol

O parâmetro e o valor devem ser selecionados de acordo com seus requisitos de rede.

Para entender esses parâmetros e como uma alteração nos valores afeta o uso do buffer, consulte o teste de laboratório apresentado na próxima seção.

Note: não há suporte para configurar uma política de QoS em interfaces port-channel, somente na parte de interfaces físicas port-channel

ASR-920-1(config)#interface port-channel 2

ASR-920-1(config-if)#service-policy output qos-tac

QoS: Configuration failed. Policy-map with Queueing actions not supported on EC main-interface/EFP

QoS: Configuration errors for policymap qos-tac

Diferenças com RSP3 e NCS 520

Recursos de QoS do módulo Cisco RSP3:

- O módulo RSP3 tem buffers de pacotes externos de 4 GB por NPU

- O módulo RSP3 suporta filas 48000

- Por padrão, o módulo RSP3 suporta um limite de fila de até 1 MB por fila

- O percentual de limite da fila é considerado de 1 GB do total de buffers

Para roteadores com supervisores RSP3 e NCS 520, o número de grupos de qos que podem ser configurados é limitado a 0-7:

ASR-903-1(config)#class-map match-all qos-tac

ASR-903-1(config-cmap)#match qos-group ?

<0-7> Qos Group value

No NCS 520, há um buffer de fila de 2 MB compartilhado entre todas as interfaces por padrão, um buffer externo de 2 GB é acessível quando um mapa de políticas com limite de fila é configurado. Há também uma diferença nos parâmetros de bytes e uso para o limite de fila:

ASR-520-1(config-pmap-c)# queue-limit ?

<1-8192000> in bytes, <1-40000> in us, <1-8192000> in packets by default

percent % of threshold

Teste de laboratório de limite de fila (QL), diferenças entre bytes e percentual

Escopo e parâmetros do teste

Como observado anteriormente, o valor máximo configurável para o limite de fila em bytes é 2097152, que é aproximadamente 18% do buffer compartilhado em plataformas ASR 920 (11,75 MB ~ 45898 * 256 bytes).

No entanto, se você configurar o limite de fila em porcentagem, poderá ir até 100%. Portanto, para comparar percentual e bytes com valores equivalentes, o teste usa valores de bytes de 117498 a 2097152 bytes e valores de percentual de limite de fila de 1% a 18%:

queue-limit percent 1 <=> queue-limit 117498 bytes

queue-limit percent 2 <=> queue-limit 234996 bytes

queue-limit percent 3 <=> queue-limit 352494 bytes

queue-limit percent 4 <=> queue-limit 469992 bytes

queue-limit percent 5 <=> queue-limit 587490 bytes

queue-limit percent 6 <=> queue-limit 704988 bytes

queue-limit percent 7 <=> queue-limit 822486 bytes

queue-limit percent 8 <=> queue-limit 939984 bytes

queue-limit percent 9 <=> queue-limit 1057482 bytes

queue-limit percent 10 <=> queue-limit 1174980 bytes

queue-limit percent 11 <=> queue-limit 1292478 bytes

queue-limit percent 12 <=> queue-limit 1409976 bytes

queue-limit percent 13 <=> queue-limit 1527474 bytes

queue-limit percent 14 <=> queue-limit 1644972 bytes

queue-limit percent 15 <=> queue-limit 1762470 bytes

queue-limit percent 16 <=> queue-limit 1879968 bytes

queue-limit percent 17 <=> queue-limit 1997466 bytes

queue-limit percent 18 <=> queue-limit 2097152 bytes

São configurados 36 mapas de políticas: 18 com valores de limite de fila que variam de 1% a 18% e os outros 18 com valores de limite de fila que variam de 117498 a 2097152 bytes.

policy-map QUEUE-LIMIT-PERCENT-X

class DUMMY

class class-default

queue-limit percent X

policy-map QUEUE-LIMIT-BYTES-X

class DUMMY

class class-default

queue-limit Y bytes

=> X values range from 1 to 18

=> Y values range from 117498 to 2097152

Cada política é testada com o mesmo tráfego de microburst, que é gerado com IXIA. Esse tráfego chega a uma porta 10 GE do ASR 920 e sai em uma porta 1 GE do mesmo roteador.

Os bursts consistem em pacotes 20000 a 4 Gbps em intervalos de 5 segundos. Esta é a duração da intermitência dada um tamanho de pacote específico:

1280000 bytes at 64 packet size, Burst duration: 0.00256 second

4000000 bytes at 200 packet size, Burst duration: 0.008 second

6000000 bytes at 300 packet size, Burst duration: 0.012 second

10360000 bytes at 518 packet size, Burst duration: 0.02072 second

16000000 bytes at 800 packet size, Burst duration: 0.032 second

20480000 bytes at 1024 packet size, Burst duration: 0.04096 second

28000000 bytes at 1400 packet size, Burst duration: 0.056 second

Procedimento de teste

Etapa 1. Aplique o mapa de políticas QUEUE-LIMIT-BYTES-X (X=1) com bytes Y=117498 na interface de saída.

Etapa 2. Executar o tráfego de microburst por 1 minuto.

Etapa 3. Meça o número total de pacotes na saída e quantos pacotes foram descartados.

Etapa 4. Calcular a razão entre os pacotes descartados e o total de pacotes de saída.

Etapa 5. Repita uma vez a partir da etapa 1, desta vez use policy-map QUEUE-LIMIT-PERCENT-X com queue-limit percent X, onde X=1.

Etapa 6. Repita da etapa 1 com X=X+1 para o nome do mapa de políticas e o valor percentual, Y=Y+117498 bytes. Repita até X=18 e Y=2097152.

Exemplo

Medição com mapa de políticas QUEUE-LIMIT-BYTES-1:

ASR-920-1#show int Gi0/0/1

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 4/255, rxload 4/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

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

Carrier delay is 0 msec

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

Last input 00:00:01, output 00:00:02, output hang never

Last clearing of "show interface" counters never

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 684263427

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 19475000 bits/sec, 19533 packets/sec

30 second output rate 19157000 bits/sec, 13356 packets/sec

5064106237 packets input, 4333296255278 bytes, 0 no buffer

Received 29 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

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

0 watchdog, 726180 multicast, 0 pause input

7829367523 packets output, 4217074973677 bytes, 0 underruns

0 output errors, 0 collisions, 3 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

ASR-920-1#show policy-map int Gi0/0/1 output

GigabitEthernet0/0/1

Service-policy output: QUEUE-LIMIT-BYTES-1

Class-map: DUMMY (match-all)

0 packets, 0 bytes

30 second offered rate 0000 bps

Match: qos-group 99

Class-map: class-default (match-any)

1044078 packets, 73085460 bytes

30 second offered rate 9759000 bps, drop rate 0000 bps

Match: any

queue limit 117498 bytes

(queue depth/total drops/no-buffer drops) 0/0/0

(pkts output/bytes output) 0/0

Medição após 1 minuto de tráfego de microburst:

ASR-920-1#show int Gi0/0/1

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 2/255, rxload 3/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

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

Carrier delay is 0 msec

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

Last input 00:00:01, output 00:00:01, output hang never

Last clearing of "show interface" counters never

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 684561562

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 13981000 bits/sec, 19643 packets/sec

30 second output rate 11256000 bits/sec, 12784 packets/sec

5064715137 packets input, 4333338878716 bytes, 0 no buffer

Received 29 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

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

0 watchdog, 726190 multicast, 0 pause input

7829753878 packets output, 4217102018968 bytes, 0 underruns

0 output errors, 0 collisions, 3 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

ASR-920-1#show policy-map int Gi0/0/1 output

GigabitEthernet0/0/1

Service-policy output: QUEUE-LIMIT-BYTES-1

Class-map: DUMMY (match-all)

0 packets, 0 bytes

30 second offered rate 0000 bps

Match: qos-group 99

Class-map: class-default (match-any)

1847215 packets, 129305050 bytes

30 second offered rate 10804000 bps, drop rate 0000 bps

Match: any

queue limit 117498 bytes

(queue depth/total drops/no-buffer drops) 0/387570/0

(pkts output/bytes output) 656508/45955560

Delta de descartes de pacotes: 684561562 - 684263427 = 298135

Delta de saída total de pacotes: 7829753878 - 7829367523 = 386355

Proporção entre quedas e saída de pacotes: 298135 / 386355 = 77%

Resultados do teste de laboratório

Conforme explicado, 36 mapas de políticas são testados: 18 configurados com valores de limite de fila que variam de 1% a 18% são testados em relação às outras 18 políticas configuradas com valores de limite de fila que variam de 117498 a 2097152 bytes. Cada mapa de política é testado com o mesmo tráfego de microburst, gerado com IXIA.

Nesta seção são expostos os resultados deste teste, repetido 7 vezes para verificar os resultados com tamanhos de pacotes diferentes, em bytes: 64, 200, 300, 518, 800, 1024, 1400.

Para facilitar a leitura, os resultados de cada tamanho de pacote são expostos em uma tabela e depois representados em gráfico.

Percentual de QL versus bytes com pacotes de 64 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                   81% |                   77%

QL Bytes/Percent  2 |                   72% |                   31%

QL Bytes/Percent  3 |                   61% |                   15%

QL Bytes/Percent  4 |                   54% |                    0%

QL Bytes/Percent  5 |                   45% |                    0%

QL Bytes/Percent  6 |                   38% |                    0%

QL Bytes/Percent  7 |                   33% |                    0%

QL Bytes/Percent  8 |                   26% |                    0%

QL Bytes/Percent  9 |                   22% |                    0%

QL Bytes/Percent 10 |                   17% |                    0%

QL Bytes/Percent 11 |                   12% |                    0%

QL Bytes/Percent 12 |                    8% |                    0%

QL Bytes/Percent 13 |                    4% |                    0%

QL Bytes/Percent 14 |                    1% |                    0%

QL Bytes/Percent 15 |                    0% |                    0%

QL Bytes/Percent 16 |                    0% |                    0%

QL Bytes/Percent 17 |                    0% |                    0%

QL Bytes/Percent 18 |                    0% |                    0%

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

Percentual de QL versus bytes com pacotes de 200 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                   82% |                   80%

QL Bytes/Percent  2 |                   72% |                   63%

QL Bytes/Percent  3 |                   63% |                   52%

QL Bytes/Percent  4 |                   54% |                   39%

QL Bytes/Percent  5 |                   46% |                   42%

QL Bytes/Percent  6 |                   51% |                   17%

QL Bytes/Percent  7 |                   32% |                   18%

QL Bytes/Percent  8 |                   27% |                    3%

QL Bytes/Percent  9 |                   22% |                    3%

QL Bytes/Percent 10 |                   17% |                    3%

QL Bytes/Percent 11 |                   12% |                    0%

QL Bytes/Percent 12 |                    8% |                    0%

QL Bytes/Percent 13 |                    5% |                    0%

QL Bytes/Percent 14 |                    1% |                    0%

QL Bytes/Percent 15 |                    0% |                    0%

QL Bytes/Percent 16 |                    0% |                    0%

QL Bytes/Percent 17 |                    0% |                    0%

QL Bytes/Percent 18 |                    0% |                    0%

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

Percentual de QL versus bytes com pacotes de 300 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                   84% |                  106%

QL Bytes/Percent  2 |                   72% |                   72%

QL Bytes/Percent  3 |                   62% |                   63%

QL Bytes/Percent  4 |                   54% |                   52%

QL Bytes/Percent  5 |                   46% |                   46%

QL Bytes/Percent  6 |                   39% |                   34%

QL Bytes/Percent  7 |                   33% |                   34%

QL Bytes/Percent  8 |                   27% |                   22%

QL Bytes/Percent  9 |                   21% |                   21%

QL Bytes/Percent 10 |                   23% |                   20%

QL Bytes/Percent 11 |                   13% |                    2%

QL Bytes/Percent 12 |                    9% |                    2%

QL Bytes/Percent 13 |                    5% |                    2%

QL Bytes/Percent 14 |                    1% |                    1%

QL Bytes/Percent 15 |                    0% |                    2%

QL Bytes/Percent 16 |                    0% |                    1%

QL Bytes/Percent 17 |                    0% |                    2%

QL Bytes/Percent 18 |                    0% |                    0%

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

Percentual de QL versus bytes com pacotes de 518 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                   85% |                   86%

QL Bytes/Percent  2 |                   97% |                   81%

QL Bytes/Percent  3 |                   62% |                   71%

QL Bytes/Percent  4 |                   54% |                   68%

QL Bytes/Percent  5 |                   46% |                   84%

QL Bytes/Percent  6 |                   52% |                   54%

QL Bytes/Percent  7 |                   42% |                   54%

QL Bytes/Percent  8 |                   27% |                   43%

QL Bytes/Percent  9 |                   21% |                   43%

QL Bytes/Percent 10 |                   17% |                   43%

QL Bytes/Percent 11 |                   17% |                   34%

QL Bytes/Percent 12 |                    8% |                   35%

QL Bytes/Percent 13 |                    5% |                   26%

QL Bytes/Percent 14 |                    1% |                   23%

QL Bytes/Percent 15 |                    0% |                   26%

QL Bytes/Percent 16 |                    0% |                   34%

QL Bytes/Percent 17 |                    0% |                   26%

QL Bytes/Percent 18 |                    0% |                    2%

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

Percentual de QL versus bytes com pacotes de 800 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                  112% |                  117%

QL Bytes/Percent  2 |                   74% |                   86%

QL Bytes/Percent  3 |                   63% |                   82%

QL Bytes/Percent  4 |                   54% |                   75%

QL Bytes/Percent  5 |                   47% |                   73%

QL Bytes/Percent  6 |                   39% |                   66%

QL Bytes/Percent  7 |                   33% |                   88%

QL Bytes/Percent  8 |                   27% |                   56%

QL Bytes/Percent  9 |                   22% |                   57%

QL Bytes/Percent 10 |                   17% |                   57%

QL Bytes/Percent 11 |                   13% |                   44%

QL Bytes/Percent 12 |                    9% |                   56%

QL Bytes/Percent 13 |                    5% |                   43%

QL Bytes/Percent 14 |                    2% |                   44%

QL Bytes/Percent 15 |                    0% |                   43%

QL Bytes/Percent 16 |                    0% |                   43%

QL Bytes/Percent 17 |                    0% |                   44%

QL Bytes/Percent 18 |                    0% |                   21%

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

Percentual de QL versus bytes com pacotes de 1024 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                   85% |                   93%

QL Bytes/Percent  2 |                   97% |                   89%

QL Bytes/Percent  3 |                   82% |                   83%

QL Bytes/Percent  4 |                   51% |                   82%

QL Bytes/Percent  5 |                   45% |                   78%

QL Bytes/Percent  6 |                   39% |                   72%

QL Bytes/Percent  7 |                   41% |                   72%

QL Bytes/Percent  8 |                   26% |                   62%

QL Bytes/Percent  9 |                   20% |                   65%

QL Bytes/Percent 10 |                   16% |                   66%

QL Bytes/Percent 11 |                   11% |                   68%

QL Bytes/Percent 12 |                    7% |                   53%

QL Bytes/Percent 13 |                    3% |                   53%

QL Bytes/Percent 14 |                    0% |                   52%

QL Bytes/Percent 15 |                    0% |                   52%

QL Bytes/Percent 16 |                    0% |                   53%

QL Bytes/Percent 17 |                    0% |                   52%

QL Bytes/Percent 18 |                    0% |                   33%

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

Percentual de QL versus bytes com pacotes de 1.400 bytes

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

Policy-map          |      Drop rate with PC | Drop rate with Bytes

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

QL Bytes/Percent  1 |                  101% |                   93%

QL Bytes/Percent  2 |                   68% |                   87%

QL Bytes/Percent  3 |                   58% |                   86%

QL Bytes/Percent  4 |                   50% |                   85%

QL Bytes/Percent  5 |                   43% |                   82%

QL Bytes/Percent  6 |                   36% |                   75%

QL Bytes/Percent  7 |                   27% |                   79%

QL Bytes/Percent  8 |                   24% |                   72%

QL Bytes/Percent  9 |                   25% |                   76%

QL Bytes/Percent 10 |                   14% |                   95%

QL Bytes/Percent 11 |                    9% |                   62%

QL Bytes/Percent 12 |                    5% |                   62%

QL Bytes/Percent 13 |                    1% |                   58%

QL Bytes/Percent 14 |                    0% |                   62%

QL Bytes/Percent 15 |                    0% |                   85%

QL Bytes/Percent 16 |                    0% |                   63%

QL Bytes/Percent 17 |                    0% |                   62%

QL Bytes/Percent 18 |                    0% |                   50%

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

Relação entre quedas e tamanho do pacote

Como mencionado, o ASR 920 tem um buffer de pacote interno de 11,75 MB que é dividido em Qnodes 45898 de 256 bytes cada.

- Para um pacote com tamanho < 256 bytes, é usado exatamente 1 Qnode

- Para um pacote com tamanho de 1024 bytes, são usados 4 Qnodes

- Para um pacote com tamanho de 257 bytes, 2 nós Qsão usados e os 255 bytes não usados são perdidos

Portanto, você pode armazenar uma quantidade menor de pacotes grandes do que com pacotes pequenos. Espera-se a relação entre a taxa de queda e o tamanho do pacote em tamanhos de limite de fila equivalentes.

Diferença entre Bytes Equivalentes e Valores Percentuais

Como explicado, há 45898 nós Qno buffer compartilhado de 11,75 MB, arredondados para 45900 para facilitar o cálculo.

O cálculo de porcentagem de limite de fila não calcula a porcentagem dos 11,75 MB, mas a porcentagem dos 45900 Qnodes. Portanto, 10% de limite de fila significa 10% de 45900, o que resulta em 4.590 nós QN.

Além disso, a porcentagem de nós QD alocados é considerada como o número de pacotes que podem ser armazenados na fila, independentemente de seu tamanho. De volta ao exemplo anterior, isso significa que:

porcentagem de limite de fila 10 = 4590 nós de fila = 4590 pacotes.

Como esse cálculo é independente do tamanho do pacote, para pacotes com tamanho de 256 bytes ou menos, apenas um Qnode é realmente usado e a equivalência entre Qnodes e pacotes é mantida:

porcentagem de limite de fila 10 = 4590 Qnodes = 4590 pacotes de 256 bytes = 4590*256 bytes = 1,175 MB = 10% do buffer

Com pacotes maiores, no entanto, uma porção mais generosa do buffer é alocada. Por exemplo, este é o cálculo para pacotes de 1024 bytes, em que cada pacote consome 4 nós Qa:

porcentagem de limite de fila 10 = 4590 Qnodes = 4590 pacotes de 1024 bytes = 4590*4*256 bytes = 4,7 MB = 40% do buffer

Caution: não é recomendável configurar valores altos de porcentagem de limite de fila.

Se você configurar valores altos de porcentagem de limite de fila, uma única interface poderá ocupar temporariamente todo o buffer compartilhado de 11,75 MB.

Conclusões

- Você pode ver claramente que a eficiência dos bytes de limite de fila é melhor com pacotes pequenos - os bytes de limite de fila <x> funcionam melhor que o limite de fila <x> para até 300 bytes

- Em pacotes de 300 bytes, a eficiência de bytes de limite de fila e percentual de limite de fila é a mesma

- Acima do tamanho de pacote de 300 bytes, o percentual de limite de fila é mais eficiente. Como o tráfego da Internet é em média de 518 bytes, isso significa que os cenários reais se beneficiam mais do percentual de limite de fila, conforme relatado pelos clientes

- A eficiência do percentual de limite de fila melhora linearmente em relação ao tamanho do pacote (quanto maior o percentual de limite de fila mais eficiente, mais bytes de limite de fila são vs. bytes de limite de fila)

- O percentual de limite de fila é implementado para ser mais generoso na alocação de espaço de buffer para pacotes acima do tamanho de 256 MB

Como aproximar os valores percentuais em cenários de tráfego real

Caso você tenha pacotes com tamanho de 256 bytes e limite de fila de 10%, você já sabe que essa equivalência é válida:

minimum queue-limit = 4590 Qnodes = 4590*256 bytes = 1.175 MB = 10% of the buffer

Com pacotes de 512 bytes somente o uso é o dobro, com pacotes de 1024 bytes somente é quatro vezes maior, e assim por diante.

Isso significa que o limite real de fila é de no mínimo 10% do buffer e, se você assumir um MTU máximo de 1500 bytes, precisará de 6 Qnodes para armazenar um único pacote, o que dá um limite máximo de fila de:

maximum queue-limit = 4590*6 Qnodes = 4590*256*6 bytes = 7.05 MB = 60% of the buffer

Dessa forma, você pode definir os limites inferior e superior do uso do buffer com o percentual de limite de fila 10, de modo mais geral, o uso máximo médio do buffer é de aproximadamente:

ceil(avg_pkt_size/256)*((qlimit_percent/45900)*100)

Exemplo de um equipamento de laboratório:

GigabitEthernet0/0/1 is up, line protocol is up

Hardware is 24xGE-4x10GE-FIXED-S, address is 70df.2f2f.ed01 (bia 70df.2f2f.ed01)

Internet address is 10.12.10.47/31

MTU 8900 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 25/255, rxload 30/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full Duplex, 1000Mbps, link type is auto, media type is T

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

Carrier delay is 0 msec

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

Last input 00:00:00, output 00:00:01, output hang never

Last clearing of "show interface" counters 00:11:43

Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 2036062

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 118520000 bits/sec, 18902 packets/sec

30 second output rate 101646000 bits/sec, 16124 packets/sec

13185272 packets input, 10328798549 bytes, 0 no buffer

Received 0 broadcasts (0 IP multicasts)

0 runts, 0 giants, 0 throttles

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

0 watchdog, 235 multicast, 0 pause input

11247114 packets output, 8870166880 bytes, 0 underruns  <<<  avg_pkt_size = 8870166880/11247114 = 788.66 bytes

0 output errors, 0 collisions, 0 interface resets

0 unknown protocol drops

0 babbles, 0 late collision, 0 deferred

0 lost carrier, 0 no carrier, 0 pause output

0 output buffer failures, 0 output buffers swapped out

Você pode calcular o tamanho médio do pacote como 8870166880/11247114 ~ 788 bytes.

Com uma porcentagem de limite de fila 10, você tem um uso máximo médio de buffer de:

ceil(avg_pkt_size/256)*((45900/100)*qlimit_percent)

Calculation example with Python:

>>> import math

>>> math.ceil(788/256)*((45900/100)*10)

18360.0

=> 18360 Qnodes = 18360 * 256 bytes = 4.7 MB = 40% of the buffer

Como verificar o uso do buffer de microburst

Nas versões do Cisco IOS-XE anteriores à 16.9.3, o buffer compartilhado das interfaces era usado para pacotes de dados e de controle (como BFD, protocolos de roteamento, ARP, LDP, punt keepalives). Para verificar o uso do buffer instantâneo, você pode usar este comando:

ASR-920-1#request platform software sdcli "nile bm reg buffertablefreelistcount show 0 0 0"

Após 16.9.3, algumas alterações foram introduzidas para melhorar o uso do buffer e ele foi dividido em 2: 1024 entradas (256KB) foram reservadas para tráfego de controle e o restante é reservado para tráfego de dados.

O uso do buffer nesse caso pode ser monitorado com estes comandos:

ASR-920-1#request platform software sdcli "nile bm reg supervisorresourcereservedcounttableaccess sh 0 0 0"

reservedUsedCount = 48 (0x30)

reservedFreeCount = 976 (0x3d0)

ASR-920-1#request platform software sdcli "nile bm reg supervisorresourcereservedcounttableaccess sh 0 2 0"

reservedUsedCount = 8114 (0x1fb2)

reservedFreeCount = 37784 (0x9398)

Observe que, dado o fato de que o buffer manipula microintermitências, você tem que repetir o comando várias vezes para ver o valor reservedUsedCount diferente de 0.

O uso do buffer pode ser simplesmente calculado com reservedUsedCount/reservedFreeCount, por exemplo, 8114/37784 = 21,5% usado. Quando a intermitência terminar, o buffer deve rapidamente voltar para 0 ou perto de 0.

A partir do Cisco IOS-XE versão 17.6.1, é possível optar por usar todo o buffer para dados e tráfego de controle (preferível se sua rede tiver uma alta taxa de tráfego de controle) ou dividir o buffer em 2, conforme descrito anteriormente. A escolha é feita com a configuração dessa instrução (desativada por padrão):

ACDC-920-1(config)#platform qos-buffer enhance enable

ACDC-920-1(config)#no platform qos-buffer enhance enable

A partir do Cisco IOS-XE versão 17.7.1, também é possível escolher o tamanho a ser alocado para o tráfego de controle:

ACDC-920-1(config)#platform qos-buffer enhance [1-4]

Where:

- 1 indica buffer de controle de 256 KB

- 2 indica 500 KB

- 3 indica 756 KB

- 4 indica 1 MB