NESTA PÁGINA
Configure o tamanho do buffer do agendador para gerenciar o congestionamento de saída
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.
-
O buffer restante disponível. O restante é a porcentagem de buffer que não é atribuída a outras filas.
-
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.
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.
Como os recursos de hardware disponíveis para configurar configurações de buffer temporal são limitados, recomendamos ter uma configuração de buffer temporal comum o máximo possível.
Em geral, você pode configurar o tamanho de buffer do agendador para agendadores de portas e agendadores hierárquicos. Para agendadores de portas, o Junos calcula o tamanho de buffer compartilhado com base nos seguintes:
-
Se um shaper de porta estiver configurado, o Junos calcula o tamanho do buffer com base no shaper da porta.
-
Se nenhum shaper de porta estiver configurado, o Junos calcula o tamanho do buffer com base na velocidade da porta.
Para agendadores hierárquicos, o Junos calcula o tamanho de buffer compartilhado com base nos seguintes:
-
Se um shaper estiver configurado na interface lógica, o Junos calcula o tamanho do buffer com base no shaper de porta da interface lógica.
-
Se um shaper de porta estiver configurado, mas sem shaper de interface lógica, o Junos calcula o tamanho do buffer com base no shaper da porta.
-
Se nenhum shaper estiver configurado, o Junos calcula o tamanho do buffer com base na velocidade da porta.
Exemplo: configure o valor de buffer de atraso para um agendador
Você pode atribuir a uma interface física ou lógica um mapa de agendamento que consiste em 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: configure a 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.
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 plataformas de roteamento universal 5G da Série MX da Juniper Networks 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. 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 18.000, 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; } } }
Comportamento de configuração de tamanho de buffer específico da plataforma
Use o Feature Explorer para confirmar o suporte de plataforma e versão para a configuração do tamanho do buffer.
Use a tabela a seguir para revisar comportamentos específicos da plataforma para sua plataforma:
Diferença de plataforma | |
---|---|
Roteadores da Série ACX7000 |
Para usar |
Roteadores da Série PTX | Os roteadores da Série PTX oferecem suporte à opção |