Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configurando grandes buffers de atraso no CoS

Você pode configurar buffers de atraso muito grandes usando o comando buffer-size-temporal combinado com o q-pic-large-buffer comando. A buffer-size temporal opção combinada com pode q-pic-large-buffer criar alocações de buffer de atraso extra-grandes para uma ou várias filas em uma interface.

Nota:

Se o tamanho do buffer configurado for muito baixo, o tamanho do buffer para a classe de encaminhamento padrão para 9192 e a seguinte mensagem de log for exibido: "fwdd_cos_set_delay_bandwidth:fila:16 tamanho do buffer de atraso (1414) muito baixo, configurando-se como padrão 9192."

Configuring Large Delay Buffers

A configuração a seguir se aplica aos exemplos a seguir:

  1. Configure duas VLANs (uma entrada e uma saída) em uma interface. Inicialmente, nenhuma taxa de modelagem de interface é definida para essa configuração.
  2. Ative q-pic-large-buffer a opção no mesmo PIC, além buffer-size temporal da opção na fila, para criar um buffer grande na fila:
    Nota:

    A CLI não fornece um aviso quando você usa buffer-size temporal sem q-pic-large-buffer. Ao usar, buffer-size temporalverifique se a configuração também inclui o q-pic-large buffer comando.

  3. Defina quatro classes de encaminhamento (nomes de fila) para as quatro filas:
  4. Configure as classes de encaminhamento (nomes da fila) incluídas em um mapa do agendador, aplicadas à VLAN de saída:
  5. Definir as prioridades da fila. Inicialmente, somente as prioridades da fila são definidas, não taxas de transmissão ou tamanhos de buffer.

Example: Simple Configuration Using Four Queues

Essa configuração aloca 12.500.000 bytes de buffer para cada uma das quatro filas. Para evitar exceder os limites do cálculo do buffer de atraso, este exemplo inicial não tem taxa de modelagem de interface, taxa de transmissão do agendador ou configuração de porcentagem do tamanho do buffer do agendador.

  1. Especifique o buffer de atraso máximo de 4 segundos em cada uma das quatro filas:

    Especificar em buffer-size temporal algumas ou todas as filas usa percentagem de taxa de transmissão implícita (padrão) ou explícita como as porcentagens em tamanho de buffer dos valores temporais dessas filas. Como não há percentagem de taxa de transmissão explicitamente especificada, dividir 100 por cento pelo número de filas configuradas (filas com agendadores configurados no mapa do agendador) para obter as porcentagens implícitas (padrão) por fila de taxa de transmissão. Cada fila obtém uma taxa de transmissão implícita (padrão) de 100% / 4 = 25%.

    Neste exemplo, especificar o atraso máximo de 4 segundos em cada fila, sem taxa de modelagem na interface e taxas de transmissão implícitas (padrão) por fila de 25 por cento, o buffer total para todas as filas temporais de 4m em uma interface = 4 segundos * 100.000.000 bps de interface máxima / 8 bits/bytes = 4 segundos * 12.500.000 bytes = 50.000.000 bytes. Cada fila que especifica 4m temporais obtém 25% * 50.000.000 = 12.500.000 bytes.

  2. Adicione uma taxa de modelagem de 4 Mbps à interface:

    O buffer total para todas as filas de 4m temporais em uma interface = 4 segundos * 4.000.000 bps modelagem-rate / 8 bits/byte = 4 segundos * 500.000 bytes = 2.000.000 bytes. Portanto, cada fila que especifica 4m temporais recebe 25% * 2.000.000 = 500.000 bytes.

Ao usar buffer-size temporal em qualquer fila de interface, transmit-rate percent se você também usar o comando ou buffer-size percent o comando ou ambos os comandos, em qualquer uma das filas de interface, os cálculos de tamanho do buffer se tornam mais complexos e os limites da profundidade da fila disponível podem ser atingidos. Se a configuração tentar exceder a memória disponível, no momento de confirmação, duas mensagens de log /var/log/messages do sistema aparecem no arquivo, a configuração da classe de serviço da interface é ignorada e a configuração da classe de serviço da interface volta para os padrões de duas filas:

Ao configurar junto buffer-size temporal com transmit-rate percent ou buffer-size percent, ou ambos, você deve monitorar o log do sistema para ver se o limite de profundidade da fila disponível foi atingido.

Example: Using buffer-size temporal with Explicit transmit-rate percent Commands

Para adicionar taxas de transmissão explícitas a todas as quatro filas:

Por exemplo, se uma interface tiver formato de 4 Mbps, a porcentagem de taxa de transmissão de 10 para uma fila significa que a parte da largura de banda da fila específica é de 0,4 Mbps. As filas são alocadas porções dos 2.000.000 bytes do buffer total disponível para filas temporais nesta interface, proporcionalmente às suas taxas de transmissão. As quatro filas tem 200.000, 500.000, 500.000 e 800.000 bytes de buffer de atraso, respectivamente.

Para evitar exceder os limites da profundidade da fila e acionar mensagens de log do sistema e o comportamento de configuração padrão, ao configurar filas buffer-size temporal transmit rate percent com e e outras filas buffer-size percent(não temporais), a seguinte regra de configuração deve ser seguida: Quando uma ou mais filas em uma interface buffer-size temporalestão configuradas com, a soma das filas temporais configuradas explicitamente percentagem da taxa de transmissão mais outras porcentagens de tamanho de buffer não temporais definidas explicitamente não devem exceder 1000 Por cento.

Se o total das filas temporais transmitir percentagem de taxa e as porcentagens de tamanho de buffer não temporais excederem 100 por cento, queue mem underflow Failed to compute scheduler params as mensagens de log e o log do sistema aparecem no log de mensagens, a configuração de clI CoS definida explicitamente para a interface é ignorada e a interface volta para uma configuração de CoS padrão de duas filas.

Quando buffer-size temporal especificado em uma fila, transmit-rate percent se também estiver configurado na mesma fila, transmit-rate percenta profundidade da fila configurada é baseada na largura de banda fracionada da fila, conforme obtido pelo especificado .

Além dos tempos de atraso temporal especificados para uma ou mais filas usando o tamanho do buffer temporal, há outro tempo de atraso computado automaticamente para toda a interface. Esse tempo de atraso da interface é distribuído em todas as filas não temporais, proporcionalmente a suas porcentagens implícitas (padrão) ou de taxa de transmissão explícita. Caso q-pic-large-buffer não seja ativado, o tempo de atraso da interface será de 100 ms. Como mostrado na Tabela 1, q-pic-large-buffer quando está ativado, o tempo de atraso da interface é calculado de acordo com a taxa de modelagem configurada da interface. Como a taxa de modelagem configurada no exemplo acima era de 4 Mbps (> 2.048.000 bps), o tempo de atraso da interface para a configuração é de 100 msec.

Tabela 1: Tempos de atraso da interface ativados por q-pic-large-buffer

Taxa de modelagem configurada (bps)

Tempo de atraso da interface (msec) usado para filas não temporais com q-pic-large-buffer ativado

Tempo de atraso padrão usado (msec) sem q-pic-large-buffer

64,000-255,999

4000

100

256,000 - 511,999

2000

100

512,000 - 102,3999

1000

100

1,024,000 - 2,047,999

500

100

>= 2.048.000

100

100

Este exemplo calcula corretamente os limites de buffer de atraso em filas temporais e não temporais:

  1. Substituir buffer-size percent nas buffer-size temporal filas 0 e 1:

    Isso elimina o requisito de 4 segundos de buffer especificado rígido e o substitui por um limite proporcional de 10 por cento (ou 25 por cento) do tempo total de atraso da interface para as filas não temporais. Em ambos os casos, a profundidade da fila é calculada com base na parte da largura de banda da interface para as filas específicas. Memória da fila não temporal total = taxa de modelagem * Tempo de atraso da interface (Tabela 1) = 4 Mbps * 0,1 segundos = 500.000 bytes por segundo * 0,1 segundo = 50.000 bytes, portanto, as filas 0 e 1 obterão 10% * 50.000 = 5.000 bytes e 25% * 50.000 = 12.500 bytes de buffer de atraso, respectivamente.

  2. Configure buffer-size temporal nas filas 2 e 3:

    As filas 2 e 3 ainda receberão 500.000 e 800.000 bytes de buffer de atraso, respectivamente, conforme previamente calculado. Essa configuração obedece à regra de que a soma das porcentagens de taxa de transmissão das filas temporais (25% + 40% = 65%), mais as porcentagens de tamanho do buffer de filas não temporais (10% + 25% = 35%) não ultrapassam 100% (65% + 35% <= 100%).

O exemplo a seguir ultrapassa o limite de buffer de atraso, acionando as mensagens de log do sistema e o comportamento padrão de classe de serviço de duas filas.

Aumente a porcentagem de tamanho do buffer de 25% para 26 por cento para a fila não temporal 1:

Isso viola a regra de configuração de que a soma das porcentagens de tamanho de buffer não temporal (10% + 26% = 36%), mais as porcentagens de taxa de transmissão das filas temporais (25% + 40% = 65%) agora ultrapassam 100% (36% + 65% = 101%). Portanto, as duas mensagens de log do sistema a seguir aparecem no /var/log/messages arquivo:

Quando os limites de buffer de atraso são ultrapassados, as configurações de classe de serviço configuradas por CLI não são usadas e a configuração de classe de serviço padrão (o mapa do agendador padrão) é atribuído à interface. Isso usa duas filas: a melhor equipe de encaminhamento (fila 0) tem taxa de transmissão de 95% e tamanho de buffer por cento 95 e o controle de rede de classe de encaminhamento (fila 3) tem a taxa de transmissão por cento 5 e o tamanho do buffer por cento 5.