O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
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.
A Cisco recomenda que você tenha conhecimento destes tópicos:
Roteadores ASR série 920
Políticas de QoS
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.
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.
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
Recursos de QoS do módulo Cisco RSP3:
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
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
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.
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%
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.
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
-------------------------------------------------------------------
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%
-------------------------------------------------------------------
Como mencionado, o ASR 920 tem um buffer de pacote interno de 11,75 MB que é dividido em Qnodes 45898 de 256 bytes cada.
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.
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.
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
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:
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
10-Oct-2022 |
Versão inicial |