NESTA PÁGINA
Configuração de grandes buffers de atraso para interfaces mais lentas
Configurando o buffer de atraso máximo para interfaces NxDS0
Exemplo: configuração de grandes buffers de atraso para interfaces mais lentas
Exemplo: configuração do valor de buffer de atraso para um agendador
Exemplo: configuração da taxa de modelagem da interface física
Habilitação e desativação da dinâmica de alocação de memória por fila
Gerenciando o congestionamento na interface de saída configurando o tamanho do buffer do agendador
Para controlar o congestionamento no estágio de saída, você pode configurar a largura de banda de buffer de atraso. A largura de banda de buffer de atraso oferece espaço de buffer de pacotes para absorver o tráfego de explosão até a duração especificada do atraso. Assim que o buffer de atraso especificado estiver cheio, os pacotes com probabilidade de queda de 100 % são retirados da cabeça do buffer.
A taxa de transmissão de agendador padrão para filas de 0 a 7 é de 95, 0, 0, 0, 0, 0, 0 e 5 por cento do total de largura de banda disponível.
As porcentagens de tamanho de buffer padrão para filas de 0 a 7 são de 95, 0, 0, 0, 0, 0, 0 e 5 por cento do buffer total disponível. O buffer total disponível por fila difere por tipo PIC.
Para configurar o tamanho do buffer, inclua a buffer-size
declaração no nível de [edit class-of-service schedulers scheduler-name]
hierarquia:
[edit class-of-service schedulers scheduler-name] buffer-size (percent percentage | remainder | shared | temporal microseconds);
Para cada agendador, você pode configurar o tamanho do buffer como um dos seguintes:
Uma porcentagem do buffer total. O buffer total por fila é baseado em microssegundos e difere pelo tipo de dispositivo de roteamento, conforme mostrado na Tabela 1.
O buffer restante disponível. O restante é a porcentagem de buffer que não é atribuída a outras filas. Por exemplo, se você atribuir 40 % do buffer de atraso à fila 0, permita que a fila 3 mantenha o loteamento padrão de 5 % e atribua o restante à fila 7, então a fila 7 usa aproximadamente 55 % do buffer de atraso.
Compartilhado do pool de buffer da interface. Nos roteadores da Série PTX, configure um buffer de fila para até 100% do buffer da interface. Essa opção permite que o buffer da fila cresça até 100% do buffer da interface se e somente se for a única fila ativa para a interface.
Um valor temporal em microssegundos. Para a configuração temporal, o algoritmo de fila começa a soltar pacotes quando faz filas mais do que um número computado de bytes. Esse máximo é computado multiplicando a taxa de transmissão da fila pelo valor temporal configurado. O valor temporal do tamanho do buffer por fila difere pelo tipo de dispositivo de roteamento, conforme mostrado na Tabela 1. Os máximos se aplicam à interface lógica, não a cada fila.
Nota:Em geral, o valor de buffer temporal padrão está inversamente relacionado à velocidade ou taxa de modelagem da interface. À medida que a velocidade da interface aumenta, a interface precisa de cada vez menos buffer para reter dados, pois é possível que a interface envie cada vez mais dados.
Dispositivos de roteamento |
Intervalos de valor temporal |
---|---|
FPCs de roteador M320 e Série T, Tipo 1 e Tipo 2 |
1 a 80.000 microssegundos |
FPCs de roteador M320 e Série T, Tipo 3. Todas as placas ES (Tipo 1, 2, 3 e 4). |
1 a 50.000 microssegundos Para PICs com mais de 40 Gbps de largura de banda total, o tamanho máximo de buffer temporal que pode ser configurado para um agendador é de 40.000 microssegundos em vez de 50.000 microssegundos. |
FEBs de roteador M120 e roteador da Série MX não consultaram DPCs e switches da Série EX |
1 a 100.000 microssegundos |
FPCs de roteador M5, M7i, M10 e M10i |
1 a 100.000 microssegundos |
Outros FPCs de roteador da Série M |
1 a 200.000 microssegundos |
Roteadores de transporte de pacotes da Série PTX |
1 a 100.000 microssegundos |
PICs IQ em todos os roteadores |
1 a 100.000 microssegundos |
Com grandes tamanhos de buffer habilitados | |
PICs IQ em todos os roteadores |
1 a 500.000 microssegundos |
Gigabit Ethernet IQ VLANs |
|
Com taxa de modelagem de até 10 Mbps |
1 a 400.000 microssegundos |
Com taxa de modelagem de até 20 Mbps |
1 a 300.000 microssegundos |
Com taxa de modelagem de até 30 Mbps |
1 a 200.000 microssegundos |
Com taxa de modelagem de até 40 Mbps |
1 a 150.000 microssegundos |
Com taxa de modelagem acima de 40 Mbps |
1 a 100.000 microssegundos |
Para obter mais informações sobre a configuração de buffers de atraso, veja os seguintes subtópicos:
Configuração de grandes buffers de atraso para interfaces mais lentas
Por padrão, as interfaces T1, E1 e NxDS0 e DLCIs configuradas em PICs de IQ canalizados são limitadas a 100.000 microssegundos de buffer de atraso. (O tamanho médio padrão do pacote no IQ PIC é de 40 bytes.) Para essas interfaces, pode ser necessário configurar um tamanho buffer maior para evitar o congestionamento e a queda de pacotes. Você pode fazer isso nos seguintes PICs:
IQ canalizado
IQ E3 de 4 portas
Gigabit Ethernet IQ e IQ2
O congestionamento e a queda de pacotes ocorrem quando grandes rajadas de tráfego são recebidas por interfaces mais lentas. Isso acontece quando interfaces mais rápidas passam o tráfego para interfaces mais lentas, o que é frequentemente o caso quando dispositivos de borda recebem tráfego do núcleo da rede. Por exemplo, um buffer de atraso de 100.000 microssegundos T1 pode absorver apenas 20 por cento de uma explosão de tráfego de 5000 microssegundos de uma interface OC3 upstream. Neste caso, 80 % do tráfego estourado é desativado.
A Tabela 2 mostra alguns tamanhos de buffer recomendados necessários para absorver tamanhos de explosão típicos de vários tipos de interface upstream.
Comprimento da explosão |
Upstream Interface |
Downstream Interface |
Buffer recomendado na interface downstream |
---|---|---|---|
5000 microssegundos |
OC3 |
E1 ou T1 |
500.000 microssegundos |
5000 microssegundos |
E1 ou T1 |
E1 ou T1 |
100.000 microssegundos |
1000 microssegundos |
T3 |
E1 ou T1 |
100.000 microssegundos |
Para garantir que o tráfego esteja enfileirado e transmitido corretamente em interfaces e DLCIs E1, T1 e NxDS0, você pode configurar um tamanho de buffer maior do que o máximo padrão. Para permitir que tamanhos de buffer maiores sejam configurados:
q-pic-large-buffer (large-scale | small-scale)
declaração no nível hierárquica[edit chassis fpc slot-number pic pic-number]
.
[edit} user@host# edit chassis fpc slot-number pic pic-number user@host# set q-pic-large-buffer large-scale
Se você especificar a opção large-scale
, o recurso oferece suporte a um número maior de interfaces. Se você especificar small-scale
, o padrão, então o recurso oferece suporte a um número menor de interfaces.
Quando você inclui a q-pic-large-buffer
declaração na configuração, o buffer maior está disponível de forma transparente para alocação em filas de agendador. O máximo de buffer maior varia de acordo com o tipo de interface, conforme mostrado na Tabela 3.
Tipo de plataforma, PIC ou interface |
Tamanho máximo de buffer |
---|---|
Com grandes tamanhos de buffer não habilitados | |
FPCs de roteador M320 e Série T, Tipo 1 e Tipo 2 |
80.000 microssegundos |
FPCs de roteador M320 e Série T, Tipo 3 |
50.000 microssegundos |
Outros FPCs de roteador da Série M |
200.000 microssegundos |
PICs IQ em todos os roteadores |
100.000 microssegundos |
Com grandes tamanhos de buffer habilitados | |
T3 canalizado e DLCIs OC3 canalizados — Os tamanhos máximos variam conforme a taxa de modelagem: |
|
Com taxa de modelagem de 64.000 a 255.999 bps |
4.000.000 microssegundos |
Com taxa de modelagem de 256.000 a 511.999 bps |
2.000.000 microssegundos |
Com taxa de modelagem de 512.000 a 1.023.999 bps |
1.000.000 microssegundos |
Com taxa de modelagem de 1.024.000 a 2.048.000 bps |
500.000 microssegundos |
Com taxa de modelagem de 2.048.001 bps a 10 Mbps |
400.000 microssegundos |
Com taxa de modelagem de 10.000.001 bps a 20 Mbps |
300.000 microssegundos |
Com taxa de modelagem de 20.000.001 bps a 30 Mbps |
200.000 microssegundos |
Com taxa de modelagem de 30.000.001 bps a 40 Mbps |
150.000 microssegundos |
Com taxa de modelagem de 40.000.001 bps e superior |
100.000 microssegundos |
NInterfaces de IQ xDS0 — os tamanhos máximos variam de acordo com o tamanho do canal: |
|
1xDSO a 3xDS0 |
4.000.000 microssegundos |
4xDSO a 7xDS0 |
2.000.000 microssegundos |
8xDSO a 15xDS0 |
1.000.000 microssegundos |
16xDSO a 32xDS0 |
500.000 microssegundos |
Outras interfaces de IQ |
500.000 microssegundos |
Se você configurar um buffer de atraso maior do que o novo máximo, a configuração do candidato pode ser comprometida com sucesso. No entanto, a configuração é recusada pelo componente de encaminhamento de pacotes e uma mensagem de aviso de log do sistema é gerada.
Para interfaces que oferecem suporte à fila de DLCI, o buffer grande é suportado para DLCIs nas quais a taxa de modelagem configurada é menor do que ou igual à largura de banda da interface física. Por exemplo, quando você configura um DLCI de retransmissão de quadros em um PIC T3 IQ canalizado e configura a taxa de modelagem para 1,5 Mbps, a quantidade de buffer de atraso que pode ser alocado para o DLCI é de 500.000 microssegundos, o que equivale a um buffer de atraso T1. Para obter mais informações sobre as filas de DLCI, consulte Aplicar mapas de agendador e taxa de modelagem para DLCIs e VLANs.
Para Ninterfaces xDS0, os tamanhos de buffer maiores podem ser de até 4.000.000 microssegundos, dependendo do número de canais DS0 na Ninterface xDS0. Para interfaces xDS0 mais Nlentas com menos canais, o buffer de atraso pode ser relativamente maior do que para interfaces xDS0 mais rápidas Ncom mais canais. Isso é mostrado na Tabela 5.
Você pode alocar o buffer de atraso como uma porcentagem ou um valor temporal. O buffer de atraso resultante é calculado de forma diferente, dependendo de como você configura o buffer de atraso, conforme mostrado na Tabela 4.
Configuração de buffer de atraso |
Fórmula |
Exemplo |
---|---|---|
Porcentagem |
|
Se você configurar uma fila em uma interface T1 para usar 30 % do buffer de atraso disponível, a fila receberá 28.125 bytes de buffer de atraso: sched-expedited { transmit-rate percent 30; buffer-size percent 30; }
|
Temporal |
|
Se você configurar uma fila em uma interface T1 para usar 500.000 microssegundos de buffer de atraso e configurar a taxa de transmissão para 20 %, a fila receberá 18.750 bytes de buffer de atraso: sched-best { transmit-rate percent 20; buffer-size temporal 500000; }
|
Porcentagem, com tamanho de buffer maior que a taxa de transmissão |
|
Neste exemplo, o buffer de atraso é alocado o dobro da taxa de transmissão. A latência máxima de buffer de atraso pode ser até o dobro do buffer de atraso de 500.000 microssegundos se a taxa de transmissão da fila não puder exceder a taxa de transmissão alocada. sched-extra-buffer { transmit-rate percent 10; buffer-size percent 20; } |
Pacotes FRF.16 LSQ |
Para largura de banda total < largura de banda T1, a taxa de buffer de atraso é de 1 segundo. Para largura de banda total >= largura de banda T1, a taxa de buffer de atraso é de 200 milissegundos (ms). |
Configurando o buffer de atraso máximo para interfaces NxDS0
Como Nas interfaces xDS0 têm menos largura de banda do que uma interface T1 ou E1, o tamanho de buffer em uma Ninterface xDS0 pode ser relativamente maior, dependendo do número de canais DS0 combinados. O tamanho máximo de buffer de atraso é calculado com a seguinte fórmula:
Interface Speed * Maximum Delay Buffer Time = Delay Buffer Size
Por exemplo, uma interface 1xDS0 tem uma velocidade de 64 kilobits por segundo (Kbps). Nesse ritmo, o tempo máximo de buffer de atraso é de 4.000.000 microssegundos. Portanto, o tamanho do buffer de atraso é de 32 kilobytes (KB):
64 Kbps * 4,000,000 microseconds = 32 KB
A Tabela 5 mostra os cálculos de buffer de atraso para interfaces 1xDS0 a 32xDS0.
Velocidade de interface |
Tamanho do buffer de atraso |
---|---|
1xDS0 a 4xDS0: o tempo máximo de buffer de atraso é de 4.000.000 microssegundos | |
1xDS0: 64 Kbps |
32 KB |
2xDS0: 128 Kbps |
64 KB |
3xDS0: 192 Kbps |
96 KB |
4xDS0 a 7xDS0: o tempo máximo de buffer de atraso é de 2.000.000 microssegundos | |
4xDS0: 256 Kbps |
64 KB |
5xDS0: 320 Kbps |
80 KB |
6xDS0: 384 Kbps |
96 KB |
7xDS0: 448 Kbps |
112 KB |
8xDS0 a 15xDS0: o tempo máximo de buffer de atraso é de 1.000.000 microssegundos | |
8xDS0: 512 Kbps |
64 KB |
9xDS0: 576 Kbps |
72 KB |
10xDS0: 640 Kbps |
80 KB |
11xDS0: 704 Kbps |
88 KB |
12xDS0: 768 Kbps |
96 KB |
13xDS0: 832 Kbps |
104 KB |
14xDS0: 896vKbps |
112 KB |
15xDS0: 960 Kbps |
120 KB |
16xDS0 a 32xDS0: o tempo máximo de buffer de atraso é de 500.000 microssegundos | |
16xDS0: 1024 Kbps |
64 KB |
17xDS0: 1088 Kbps |
68 KB |
18xDS0: 1152 Kbps |
72 KB |
19xDS0: 1216 Kbps |
76 KB |
20xDS0: 1280 Kbps |
80 KB |
21xDS0: 1344 Kbps |
84 KB |
22xDS0: 1408 Kbps |
88 KB |
23xDS0: 1472 Kbps |
92 KB |
24xDS0: 1536 Kbps |
96 KB |
25xDS0: 1600 Kbps |
100 KB |
26xDS0: 1664 Kbps |
104 KB |
27xDS0: 1728 Kbps |
108 KB |
28xDS0: 1792 Kbps |
112 KB |
29xDS0: 1856 Kbps |
116 KB |
30xDS0: 1920 Kbps |
120 KB |
31xDS0: 1984 Kbps |
124 KB |
32xDS0: 2048 Kbps |
128 KB |
Exemplo: configuração de grandes buffers de atraso para interfaces mais lentas
Defina grandes buffers de atraso em interfaces configuradas em um PIC de IQ OC12 canalizado. A configuração de CoS vincula um mapa do agendador à interface especificada na configuração do chassi. Para obter informações sobre os cálculos de buffer de atraso neste exemplo, consulte a Tabela 4.
Para configurar um grande buffer de atraso:
Exemplo: configuração do valor de buffer de atraso para um agendador
Você pode atribuir a uma interface física ou lógica, um mapa de agendador composto por diferentes agendadores (ou filas). O grande buffer de atraso da interface física pode ser distribuído aos diferentes agendadores (ou filas) usando as declarações e buffer-size
declarações transmit-rate
no nível de [edit class-of-service schedulers scheduler-name]
hierarquia.
Este exemplo mostra dois agendadores esched-exped
, sched-best
com o tamanho do buffer de atraso configurado como uma porcentagem (20 por cento) e valor temporal (300.000 microssegundos), respectivamente. O sched-best
agendador tem uma taxa de transmissão de 10 %. O sched-exped
agendador tem uma taxa de transmissão de 20 %.
O sched-best
buffer de atraso do agendador é o dobro da taxa de transmissão especificada de 10 %. Assumindo que o sched-best
agendador seja atribuído a uma interface T1, este agendador recebe 20 % do total de 500.000 microssegundos do buffer de atraso da interface T1. Portanto, o agendador recebe 18.750 bytes de buffer de atraso:
available interface bandwidth * configured percentage buffer-size * maximum buffer = queue buffer 1.5 Mbps * 0.2 * 500,000 microseconds = 150,000 bits = 18,750 bytes
Assumindo que o sched-exped
agendador seja atribuído a uma interface T1, este agendador recebe 300.000 microssegundos do buffer de atraso de 500.000 microssegundos da interface T1 com a taxa de tráfego em 20 %. Portanto, o agendador recebe 11.250 bytes de buffer de atraso:
available interface bandwidth * configured percentage transmit-rate * configured temporal buffer-size = queue buffer 1.5 Mbps * 0.2 * 300,000 microseconds = 90,000 bits = 11,250 bytes
Para configurar este exemplo:
Exemplo: configuração da taxa de modelagem da interface física
Em geral, a velocidade da interface física é a base para o cálculo do tamanho do buffer de atraso. No entanto, quando você inclui a shaping-rate
declaração, a taxa de modelagem torna-se a base para o cálculo do tamanho do buffer de atraso. Para obter mais informações, veja Tabela 5.
Este exemplo configura a taxa de modelagem em uma interface T1 para 200 Kbps, o que significa que a largura de banda da interface T1 está definida para 200 Kbps em vez de 1,5 Mbps. Como 200 Kbps são menores que 4xDS0, essa interface recebe 4 segundos de buffer de atraso, ou 800 Kbps de tráfego, que é de 800 KB por um segundo completo.
Configuração completa
Este exemplo mostra um PIC de IQ OC12 canalizado no slot FPC 0, slot PIC 0 e uma interface T1 canalizada com encapsulamento Frame Relay. Ele também mostra uma configuração do mapa do agendador na interface física.
chassis { fpc 0 { pic 0 { q-pic-large-buffer; max-queues-per-interface 8; } } } interfaces { coc12-0/0/0 { partition 1 oc-slice 1 interface-type coc1; } coc1-0/0/0:1 { partition 1 interface-type t1; } t1-0/0/0:1:1 { encapsulation frame-relay; unit 0 { family inet { address 10.1.1.1/24; } dlci 100; } } } class-of-service { interfaces { t1-0/0/0:1:1 { scheduler-map smap-1; } } scheduler-maps { smap-1 { forwarding-class best-effort scheduler sched-best; forwarding-class expedited-forwarding scheduler sched-exped; forwarding-class assured-forwarding scheduler sched-assure; forwarding-class network-control scheduler sched-network; } } schedulers { sched-best { transmit-rate percent 40; buffer-size percent 40; } sched-exped { transmit-rate percent 30; buffer-size percent 30; } sched-assure { transmit-rate percent 20; buffer-size percent 20; } sched-network { transmit-rate percent 10; buffer-size percent 10; } } }
Habilitação e desativação da dinâmica de alocação de memória por fila
No Junos OS, a dinâmica de alocação de memória (MAD) é um mecanismo que provisiona dinamicamente buffer de atraso extra quando uma fila está usando mais largura de banda do que é alocada na configuração da taxa de transmissão. Com esse buffer extra, as filas absorvem rajadas de tráfego com mais facilidade, evitando assim quedas de pacotes. O mecanismo MAD só pode provisionar buffer de atraso extra quando a largura de banda de transmissão extra estiver sendo usada por uma fila. Isso significa que a fila pode ter quedas de pacotes se não houver largura de banda de transmissão de excesso disponível.
Para roteadores de borda multisserviços M320 da Juniper Networks, plataformas de roteamento universal 5G da Série MX, roteadores de núcleo da Série T e switches de ethernet da Série EX, o mecanismo MAD é habilitado a menos que o buffer de atraso seja configurado com uma configuração temporal para uma determinada fila. O mecanismo MAD é particularmente útil para as aulas de encaminhamento que transportam tráfego imunode latência para o qual o requisito principal é a utilização máxima de largura de banda. Por outro lado, para tráfego sensível à latência, você pode querer desabilitar o mecanismo MAD porque grandes buffers de atraso não são ótimos.
O suporte MAD depende do FPC e do Mecanismo de encaminhamento de pacotes, não do PIC. Todos os roteadores M320, Série MX e Série T e FPCs e mecanismos de encaminhamento de pacotes da Série EX oferecem suporte a MAD. Não há concentradores modulares de portas (MPCs) e IQ, IQ2, IQ2E ou PICs IQE com suporte a MAD.
Para habilitar o mecanismo MAD em hardware suportado:
buffer-size percent
declaração no nível de [edit class-of-service schedulers scheduler-name]
hierarquia:
[edit class-of-service schedulers scheduler-name] user@host# set buffer-size percent percentage
O buffer mínimo alocado em qualquer fila é de 18.432 bytes. Se uma fila estiver configurada para ter um tamanho de buffer inferior a 18K, a fila reterá um tamanho de buffer de 18.432 bytes.
Se desejado, você pode configurar um tamanho de buffer maior do que a taxa de transmissão configurada. O buffer pode acomodar rajadas de pacote que excedem a taxa de transmissão configurada, se houver excesso suficiente de largura de banda disponível. Por exemplo:
class-of-service { schedulers { sched-best { transmit-rate percent 20; buffer-size percent 30; } } }
Como dito anteriormente, você pode usar uma configuração de buffer de atraso temporal para desabilitar o mecanismo MAD em uma fila, limitando assim o tamanho do buffer de atraso. No entanto, a latência buffer eficaz para uma fila temporal é limitada não apenas pelo valor do tamanho do buffer, mas também pelo perfil de queda associado. Se um perfil de queda especificar uma probabilidade de queda de 100 por cento em um nível de preenchimento inferior a 100 %, a latência máxima de buffer eficaz é menor do que a configuração do tamanho do buffer. Isso ocorre porque o perfil de queda especifica que os pacotes de queda de fila antes do buffer de atraso da fila estão 100 % cheios.
Essa configuração pode se parecer com o seguinte exemplo:
class-of-service { drop-profiles { plp-high { fill-level 70 drop-probability 100; } plp-low { fill-level 80 drop-probability 100; } } schedulers { sched { buffer-size temporal 500000; drop-profile-map loss-priority low protocol any drop-profile plp-low; drop-profile-map loss-priority high protocol any drop-profile plp-high; transmit-rate percent 20; } } }