O uso da programação de saída garante que o tráfego importante não caia no caso de um grande excesso de assinaturas. Este documento discute todas as técnicas e algoritmos envolvidos na programação de saída no switch Catalyst 6500/6000. Este documento também explica como configurar e verificar a operação da programação de saída no Catalyst 6500/6000 que executa o Cisco IOS® Software.
Consulte Programação de Saída de QoS em Catalyst 6500/6000 Series Switches executando CatOS System Software para obter mais informações sobre Detecção Antecipada Aleatória Ponderada (WRED - Weighted Random Early Detection), Rodízio Ponderado (WRR - Weighted Round Robin) e queda traseira.
Não existem requisitos específicos para este documento.
Este documento não se restringe a versões de software e hardware específicas.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
As quedas de saída são causadas por uma interface congestionada. Uma causa comum disso pode ser o tráfego de um link de largura de banda alta que é comutado para um link de largura de banda mais baixa ou o tráfego de vários links de entrada que é comutado para um único link de saída.
Por exemplo, se uma quantidade grande de tráfego intermitente chegar em uma interface gigabit e for comutada para uma interface de 100 Mbps, isso poderá causar cancelamentos de saída para aumentar a interface de 100 Mbps. Isso ocorre porque a fila de saída nessa interface está sobrecarregada pelo excesso de tráfego devido à incompatibilidade de velocidade entre as larguras de banda de entrada e saída. A taxa de tráfego na interface de saída não pode aceitar todos os pacotes que devem ser enviados.
Para resolver o problema, a melhor solução é aumentar a velocidade da linha. No entanto, há maneiras de evitar, diminuir ou controlar quedas de saída quando você não deseja aumentar a velocidade da linha. Você pode evitar quedas de saída somente se quedas de saída forem uma consequência de rajadas curtas de dados. Se as quedas de saída forem causadas por um fluxo constante de alta taxa, você não poderá impedir as quedas. Entretanto, você pode controlá-los.
Se você não tiver certeza sobre o recurso de enfileiramento de uma porta, emita o comando show queueing interface {gigabitethernet comando mod/port | fastethernet. Aqui são mostradas as primeiras linhas de saída de um comando show queueing interface. A porta está em uma placa de linha do Supervisor Engine 1A:
cosmos#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin QoS is disabled globally Trust state: trust DSCP Default COS is 0 Transmit group-buffers feature is enabled Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 !--- Output suppressed.
A saída mostra que essa porta tem um tipo de enfileiramento de saída conhecido como 1p2q2t.
Outra maneira de ver o tipo de enfileiramento disponível em uma porta específica é emitir o comando show interface capabilities:
la-orion#show interface gigabitethernet 6/2 capabilities GigabitEthernet6/2 Model: WS-SUP720-BASE Type: No GBIC Speed: 1000 Duplex: full Trunk encap. type: 802.1Q,ISL Trunk mode: on,off,desirable,nonegotiate Channel: yes Broadcast suppression: percentage(0-100) Flowcontrol: rx-(off,on,desired),tx-(off,on,desired) Membership: static Fast Start: yes QOS scheduling: rx-(1p1q4t), tx-(1p2q2t) CoS rewrite: yes ToS rewrite: yes Inline power: no SPAN: source/destination UDLD yes Link Debounce: yes Link Debounce Time: yes Ports on ASIC: 1-2
Há vários tipos de filas disponíveis nos switches Catalyst 6500/6000. Esta tabela explica a notação da arquitetura de QoS da porta:
Transmissão (Tx)/Recepção (Rx) | Notação da fila | Número de filas | priority queue | Nº de filas WRR | Nº e tipo de limite para filas WRR |
---|---|---|---|---|---|
Tx | 2q2t | 2 | — | 2 | 2 queda traseira configurável |
Tx | 1p2q2t | 3 | 1 | 2 | 2 WRED configurável |
Tx | 1p3q1t | 4 | 1 | 3 | 1 WRED configurável |
Tx | 1p2q1t | 3 | 1 | 2 | 1 WRED configurável |
Rx | 1q4t | 1 | — | — | 4 queda traseira configurável |
Rx | 1p1q4t | 2 | 1 | 1 | 4 queda traseira configurável |
Rx | 1p1q0t | 2 | 1 | 1 | Não configurável |
Rx | 1p1q8t | 2 | 1 | 1 | 8 WRED configurável |
Tx | 1p3q8t | 4 | 1 | 3 | 8 WRED configurável ou queda traseira |
Tx | 1p7q8t | 8 | 1 | 7 | 8 WRED configurável ou queda traseira |
Rx | 1q2t | 1 | — | — | 1 queda traseira configurável = 1 não configurável |
Rx | 1q8t | 1 | — | — | 8 queda traseira configurável |
Rx | 2q8t | 2 | — | 2 | 8 queda traseira configurável |
A tabela a seguir lista alguns dos módulos e tipos de fila nos lados Rx e Tx da interface ou porta. Se o seu módulo não estiver listado aqui, use o comando show interface capabilities para determinar a capacidade da fila disponível. O comando show interface capabilities é descrito na Output Queueing Capability of Different Line Cards na seção Catalyst 6500/6000.
Módulo | Filas Rx | Filas Tx |
---|---|---|
WS-X6K-S2-PFC2 | 1p1q4t | 1p2q2t |
WS-X6K-SUP1A-2GE | 1p1q4t | 1p2q2t |
WS-X6K-SUP1-2GE | 1q4t | 2q2t |
WS-X6501-10GEX4 | 1p1q8t | 1p2q1t |
WS-X6502-10GE | 1p1q8t | 1p2q1t |
WS-X6516-GBIC | 1p1q4t | 1p2q2t |
WS-X6516-GE-TX | 1p1q4t | 1p2q2t |
WS-X6416-GBIC | 1p1q4t | 1p2q2t |
WS-X6416-GE-MT | 1p1q4t | 1p2q2t |
WS-X6316-GE-TX | 1p1q4t | 1p2q2t |
WS-X6408A-GBIC | 1p1q4t | 1p2q2t |
WS-X6408-GBIC | 1q4t | 2q2t |
WS-X6524-100FX-MM | 1p1q0t | 1p3q1t |
WS-X6324-100FX-SM | 1q4t | 2q2t |
WS-X6324-100FX-MM | 1q4t | 2q2t |
WS-X6224-100FX-MT | 1q4t | 2q2t |
WS-X6548-RJ-21 | 1p1q0t | 1p3q1t |
WS-X6548-RJ-45 | 1p1q0t | 1p3q1t |
WS-X6348-RJ-21 | 1q4t | 2q2t |
WS-X6348-RJ21V | 1q4t | 2q2t |
WS-X6348-RJ-45 | 1q4t | 2q2t |
WS-X6348-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ-45V | 1q4t | 2q2t |
WS-X6148-RJ21V | 1q4t | 2q2t |
WS-X6248-RJ-45 | 1q4t | 2q2t |
WS-X6248A-TEL | 1q4t | 2q2t |
WS-X6248-TEL | 1q4t | 2q2t |
WS-X6024-10FL-MT | 1q4t | 2q2t |
Esta seção descreve todas as etapas necessárias para configurar o agendamento de saída em um Catalyst 6500/6000 que executa o Cisco IOS Software. Para a configuração padrão do Catalyst 6500/6000, consulte o Caso 1: A QoS está habilitada e um parâmetro padrão é usado na seção deste documento.
A configuração do Catalyst 6500/6000 implica estas cinco etapas:
Mapear cada valor de classe de serviço (CoS) possível para uma fila e um limite (opcional)
Configurar o peso do WRR (opcional)
Configurar os buffers atribuídos a cada fila (opcional)
Configurar o nível de limite para cada fila (opcional)
Observação: cada uma dessas etapas é opcional, com exceção da Etapa 1. Você pode decidir deixar o valor padrão para um ou mais parâmetros.
Primeiro, habilite a QoS. Lembre-se de que a QoS está desativada, por padrão. Quando a QoS é desabilitada, o mapeamento de CoS configurado não afeta o resultado. Há uma fila atendida de maneira FIFO (first in, first out, primeiro a entrar, primeiro a sair) e todos os pacotes são descartados lá.
cosmos#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cosmos(config)#mls qos QoS is enabled globally Microflow policing is enabled globally QoS global counters: Total packets: 552638 IP shortcut packets: 0 Packets dropped by policing: 0 IP packets with TOS changed by policing: 0 IP packets with COS changed by policing: 0 Non-IP packets with CoS changed by policing: 0
Para todos os tipos de fila, atribua o CoS a uma fila e a um limite. O mapeamento definido para um tipo de porta 2q2t não é aplicado a nenhuma porta 1p2q2t. Além disso, o mapeamento para 2q2t é aplicado a todas as portas com um mecanismo de enfileiramento 2q2t. Emita estes comandos cos-map na interface:
wrr-queue cos-map Q_number_(1-2) threshold_number_(1-2) cos_value_1 cos_value_2 priority-queue cos-map Q_number_(always 1) cos_value_1 cos_value_2
Observação: cada um desses comandos deve estar em uma linha.
Você pode configurar separadamente a fila WRR. Se houver uma fila de prioridade, você poderá configurá-la com o comando priority-queue.
Observação: as filas são sempre numeradas começando com a fila de prioridade mais baixa possível e terminando com a fila de prioridade estrita disponível. Por exemplo:
A fila 1 é a fila WRR de baixa prioridade.
A fila 2 é a fila WRR de alta prioridade.
A fila 3 é a fila de prioridade estrita.
Repita essa operação para todos os tipos de filas ou a atribuição de CoS padrão permanece. Este é um exemplo de configuração para 1p2q2t:
cosmos#configure terminal cosmos(config)#interface gigabitethernet 1/1 cosmos(config-if)#priority-queue cos-map 1 5 !--- Assign a CoS of 5 to priority queue. cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 1 1 0 1 !--- Assign CoS 0 and 1 to the first threshold of low-priority WRR queue. cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 1 2 2 3 !--- Assign CoS 2 and 3 to the second threshold of low-priority WRR queue. cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 2 1 4 6 !--- Assign CoS 4 and 6 to the first threshold of high-priority WRR queue. cos-map configured on: Gi1/1 Gi1/2 cosmos(config-if)#wrr-queue cos-map 2 2 7 !--- Assign CoS 7 to the first threshold of high-priority WRR queue. cos-map configured on: Gi1/1 Gi1/2
Verifique a configuração:
cosmos#show queueing interface gigabitethernet 1/1 !--- Output suppressed. queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 !--- Output suppressed.
Configure o peso WRR para as duas filas WRR. Emita este comando de interface:
wrr-queue bandwidth weight_for_Q1 weight_for_Q2
O peso 1 se refere à fila 1, que deve ser a fila WRR de baixa prioridade. Mantenha sempre este peso um nível inferior ao peso 2. O peso pode ter qualquer valor entre 1 e 255. Use estas fórmulas para atribuir a porcentagem:
Para a fila 1—[peso 1 / (peso 1 + peso 2)]
Para a fila 2—[peso 2 / (peso 1 + peso 2)]
Você deve definir o peso para todos os tipos de filas. Esses tipos de peso não precisam ser os mesmos. Este é um exemplo para 2q2t, onde a fila 1 é atendida 20% do tempo e a fila 2 é atendida 80% do tempo:
cosmos#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cosmos(config)#interface gigabitethernet 1/1 cosmos(config-if)#wrr-queue bandwidth ? <1-255> enter bandwidth weight between 1 and 255 cosmos(config-if)#wrr-queue bandwidth 20 80 !--- Queue 1 is served 20% of the time, and queue 2 is served !--- 80% of the time. cosmos(config-if)#
Verifique a configuração:
cosmos#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] !--- Output suppressed.
Observação: você pode configurar diferentes pesos WRR para cada interface quando não for possível usar o CatOS Software.
Você deve definir a proporção da fila de transmissão. Isso determina como os buffers são divididos entre as diferentes filas.
wrr-queue queue-limit percentage_WRR_Q1 percentage_WRR_Q2
cosmos(config)#interface gigabitethernet 1/2
cosmos(config-if)#wrr-queue queue-limit 70 15
!--- Queue 1 has 70% of the buffers. !--- Queues 2 and 3 both have 15% of the buffers.
queue-limit configured on: Gi1/1 Gi1/2
Observação: se o recurso de enfileiramento de sua porta gigabit for 1p1q2t, você precisará usar o mesmo nível para a fila de prioridade estrita e para a fila WRR de alta prioridade. Esses níveis não podem ser diferentes por razões de hardware. Somente a largura de banda das duas filas WRR está configurada. Você usa automaticamente o mesmo valor para a fila WRR de alta prioridade e a fila de prioridade estrita, se houver.
Alguns tipos de enfileiramento não têm tamanho de fila ajustável. Um exemplo é o 1p3q1t, que está disponível no WS-X6548RJ45. Esses tipos de fila são fixos e você não pode modificá-los.
Verifique a configuração:
cosmos#show queueing interface gigabitethernet 1/2 Interface GigabitEthernet1/2 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 5[queue 1] 255[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2]
Observação: é melhor deixar a maior parte dos buffers para a fila WRR de baixa prioridade. Esta é a fila onde você precisa ativar o buffer adicional. As outras filas são servidas com prioridade mais elevada.
Como etapa final, configure o nível de limite para a fila WRED ou para a fila de queda traseira. Esta lista fornece os comandos:
Para as filas que usam WRED como mecanismo de queda para o limiar, emita estes comandos:
wrr-queue random-dtect min-threshold Q_number threshold_1_value threshold_2_value wrr-queue random-dtect max-threshold Q_number threshold_1_value threshold_2_value
Observação: cada um desses comandos deve estar em uma linha.
Para as filas que usam queda traseira como mecanismo de queda, emita este comando:
wrr-queue threshold Q_number threshold_1_value threshold_2_value
Observação: esse comando deve estar em uma linha.
Configuração de uma fila WRED:
cosmos(config)#interface gigabitethernet 1/1 cosmos(config-if)#wrr-queue random-detect min-threshold 1 20 50 !--- This sets the threshold of queue 1 to 20 and 50% minimum threshold !--- configured on Gi1/1 Gi1/2. cosmos(config-if)#wrr-queue random-detect min-threshold 2 20 50 !--- This sets the threshold of queue 2 to 20 and 50% minimum threshold !--- configured on Gi1/1 Gi1/2. cosmos(config-if)#wrr-queue random-detect max-threshold 1 50 80 !--- This sets the threshold of queue 1 to 50 and 80% maximum threshold !--- configured on Gi1/1 Gi1/2. cosmos(config-if)#wrr-queue random-detect max-threshold 2 40 60 !--- This sets the threshold of queue 2 to 49 and 60% maximum threshold !--- configured on Gi1/1 Gi1/2.
Configuração para uma fila de queda traseira:
cosmos(config)#interface fastethernet 3/1 cosmos(config-if)#wrr-queue threshold ? <1-2> enter threshold queue id (1-2) cosmos(config-if)#wrr-queue threshold 1 ? <1-100> enter percent of queue size between 1 and 100 cosmos(config-if)#wrr-queue threshold 1 50 100 !--- This sets the tail drop threshold for this 2q2t interface for !--- queue 1 (low-priority) to 50 and 100% of the buffer. threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10 Fa3/11 Fa3/12 cosmos(config-if)# cosmos(config-if)# cosmos(config-if)#wrr-queue threshold 2 40 100 !--- This sets the tail drop threshold for this 2q2t interface for !--- queue 2 (high-priority) to 40 and 100% of the buffer. threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 Fa3/9 Fa3/10 Fa3/11 Fa3/12 cosmos(config-if)#
Verifique a configuração:
cosmos#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-min-thresholds ----------------------------- 1 20[1] 50[2] 2 20[1] 50[2] queue random-detect-max-thresholds ---------------------------------- 1 50[1] 80[2] 2 40[1] 60[2] cosmos#show queueing interface fastethernet 3/1 Interface FastEthernet3/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default cos is 0 Transmit queues [type = 2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 WRR bandwidth ratios: 100[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 10[queue 2] queue tail-drop-thresholds -------------------------- 1 50[1] 100[2] 2 40[1] 100[2]
Você não pode configurar o limite e atribuir o CoS à fila por porta. Todas as alterações são aplicadas a um conjunto de portas contíguas:
Quatro portas para placas de linha gigabit—as portas 1 a 4 estão juntas e as portas 5 a 8 estão juntas.
Doze portas para 10/100 portas ou 100 portas de fibra baseadas no enfileiramento 1q4t/2q2t—1 a 12, 13 a 24, 25 a 36 e 36 a 48.
Para determinar a porta exata que pertence ao mesmo ASIC, use o comando show interface capabilities.
O comando mais fácil de executar para verificar a configuração atual de tempo de execução de uma porta em relação ao agendamento de saída é o comando show queueing interface {gigabitethernet comando | fastethernet} slot/porta Esse comando exibe o tipo de enfileiramento na porta, o mapeamento de CoS para as diferentes filas e limiares, o compartilhamento de buffer e o peso de WRR. Aqui, é 20% de WRR para a fila 1 e 80% de WRR para a fila 2. O comando também exibe todas as informações configuradas para o agendamento de saída e o número de pacotes que são descartados em cada fila para cada limiar:
cosmos#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Port is untrusted Default COS is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 20[queue 1] 80[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 50[1] 80[2] 2 40[1] 60[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 6 2 2 7 3 1 5 Receive queues [type = 1p1q4t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 Standard 4 2 Priority 1 queue tail-drop-thresholds -------------------------- 1 100[1] 100[2] 100[3] 100[4] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 1 3 4 1 4 6 7 2 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 0 [0 1 ] 1 2 0 [2 3 ] 2 1 0 [4 6 ] 2 2 0 [7 ] 3 1 0 [5 ] Packets dropped on Receive: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 0 [0 1 ] 1 2 0 [2 3 ] 1 3 0 [4 ] 1 4 0 [6 7 ] 2 1 0 [5 ]
Esse tráfego é injetado no Catalyst 6500/6000:
Na porta gigabit 1/2: um gigabit de tráfego com precedência de zero
Na porta gigabit 5/2:
133 MB de tráfego com precedência de sete
133 MB de tráfego com precedência de seis
133 MB de tráfego com precedência de cinco
133 MB de tráfego com precedência de quatro
133 MB de tráfego com precedência de três
133 MB de tráfego com precedência de dois
133 MB de tráfego com precedência de um
Todo o tráfego unicast sai do switch por porta gigabit 1/1, que está com excesso de assinaturas.
O comando show queueing interface gigabitethernet 1/1 configura toda a saída neste exemplo. O comando fornece informações adicionais sobre o agendamento de entrada. No entanto, como este documento abrange somente o agendamento de saída, ele suprime essa saída.
Quando a QoS está habilitada globalmente e todos os parâmetros padrão estão em uso, essa saída resulta após alguns minutos:
nelix#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 100[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 149606424 [0 1 ] 1 2 0 [2 3 ] 2 1 16551394 [4 ] 2 2 4254446 [6 7 ] 3 1 0 [5 ]
Nesta saída, os valores padrão são:
Peso WRR para a fila 1—100 / (100 + 255) = 28%
Peso WRR para a fila 2—255 / (255 + 100) = 72%
Compartilhamento de buffer: —90% para a fila 1, 5% para a fila 2 e 5% para a fila de prioridade estrita
A maioria dos pacotes na fila WRR de baixa prioridade são descartados, mas alguns ainda são descartados na fila WRR de alta prioridade para ambos os limiares. Há um total de 170.412.264 gotas (149.606.424 + 16.551.394 + 4.254.446). Essas gotas são divididas da seguinte forma:
149.606.424 / 170.412.264 = 88% das quedas na fila 1 (primeiro pacote de limiar com CoS 0 e 1)
16.551.394 / 170.412.264 = 10% das quedas na fila 2 (primeiro pacote de limiar com CoS 4)
4.254.446 / 170.412.264 = 2% de quedas na fila 2 (segundo pacote de limiar com CoS de 6 ou 7)
Observação: você não vê nenhum descarte na fila de prioridade estrita.
Como observado no caso 1: A QoS está habilitada e um parâmetro padrão é usado, pacotes na fila 2 ainda estão sendo descartados. Modifique o peso do WRR para dar mais largura de banda à fila 2. Agora, a fila 1 é esvaziada 4% do tempo, e a fila 2 é esvaziada 96% do tempo:
show run interface gigabitethernet 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 10 255 mls qos trust dscp switchport switchport mode access end nelix#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 10[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 2786205 [0 1 ] 1 2 0 [2 3 ] 2 1 11363 [4 ] 2 2 69 [6 7 ] 3 1 0 [5 ]
Como visto nesta saída, o percentual de quedas na fila 2 agora é muito menor. Um total de 2.797.637 gotas é dividido desta forma:
2.786.205 / 2.797.637 = 99,591% das quedas na fila 1 (com pacote de CoS 0 e 1)
11.363 / 2.797.637 = 0,408% de quedas na fila 2 (primeiro limiar com pacote CoS 4)
69 / 2.797.637 = 0,001% de quedas na fila 2 (segundo limiar para pacote com CoS 6 e 7)
Se você usa vários pesos WRR, ele garante mais QoS na fila 2.
Você pode ser ainda mais agressivo com o peso de WRR. Nesta saída de exemplo, apenas 0,39% do peso é dado à fila 1:
show run interface gigabitethernet 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 1 255 mls qos trust dscp switchport switchport mode access end nelix#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 1[queue 1] 255[queue 2] queue-limit ratios: 90[queue 1] 5[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 2535315 [0 1 ] 1 2 0 [2 3 ] 2 1 705 [4 ] 2 2 73 [6 7 ] 3 1 0 [5 ]
Mesmo com o peso de WRR agressivo, os pacotes ainda estão sendo descartados na fila 2. No entanto, em comparação, não são muitos pacotes. Agora há apenas 0,03% de queda de pacote na fila 2.
Como se pode ver no caso 2: Modifique o peso do WRR e o caso 3: Seções adicionais de WRR Weight Modification, os pacotes ainda estão sendo descartados na fila 2, embora o percentual de WRR garanta que a queda é mínima. No entanto, quando o segundo limiar (que é definido como 100%) é atingido na fila 2, alguns pacotes continuam a ser descartados.
Para melhorar isso, altere o limite da fila (tamanho do buffer atribuído a cada fila). Neste exemplo, o limite da fila é definido como 70% para a fila 1, 15% para a fila 2 e 15% para a fila de prioridade estrita:
show run gigabitethernet 1/1 interface GigabitEthernet1/1 no ip address wrr-queue bandwidth 1 255 wrr-queue queue-limit 70 15 mls qos trust dscp switchport switchport mode access end nelix#show queueing interface gigabitethernet 1/1 Interface GigabitEthernet1/1 queueing strategy: Weighted Round-Robin Port QoS is enabled Trust state: trust DSCP Default cos is 0 Transmit queues [type = 1p2q2t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 WRR low 2 2 WRR high 2 3 Priority 1 WRR bandwidth ratios: 1[queue 1] 255[queue 2] queue-limit ratios: 70[queue 1] 15[queue 2] queue random-detect-max-thresholds ---------------------------------- 1 40[1] 100[2] 2 40[1] 100[2] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 2 1 4 2 2 6 7 3 1 5 Receive queues [type = 1p1q4t]: Queue Id Scheduling Num of thresholds ----------------------------------------- 1 Standard 4 2 Priority 1 queue tail-drop-thresholds -------------------------- 1 100[1] 100[2] 100[3] 100[4] queue thresh cos-map --------------------------------------- 1 1 0 1 1 2 2 3 1 3 4 1 4 6 7 2 1 5 Packets dropped on Transmit: BPDU packets: 0 queue thresh dropped [cos-map] --------------------------------------------------- 1 1 154253046 [0 1 ] 1 2 0 [2 3 ] 2 1 0 [4 ] 2 2 0 [6 7 ] 3 1 0 [5 ]
Agora, as quedas só ocorrem na fila 1.
Os estudos de casos na seção Exemplo de Programação de Saída demonstram o benefício da implementação do agendamento de saída para evitar uma queda de VoIP ou tráfego de missão crítica em caso de excesso de assinatura da porta de saída. A sobreassinatura não ocorre com muita frequência em uma rede normal (particularmente em um link gigabit). O excesso de assinaturas só deve ocorrer durante horários de pico de tráfego ou durante surtos de tráfego que ocorram em um período de tempo muito curto.
Mesmo sem excesso de assinaturas, o agendamento de saída pode ser de grande ajuda em uma rede onde a QoS é implementada de ponta a ponta. Esta seção fornece exemplos de como o agendamento de saída pode ajudar a reduzir o atraso e a instabilidade.
O atraso de um pacote aumenta devido ao tempo "perdido" no buffer de cada switch enquanto espera para ser transmitido. Por exemplo, um pequeno pacote de voz com um CoS de 5 é enviado de uma porta durante um grande backup ou transferência de arquivos. Suponha que não haja QoS para a porta de saída e que o pequeno pacote de voz seja enfileirado após 10 pacotes grandes de 1.500 bytes. Nesse caso, você pode facilmente calcular que o tempo de velocidade de gigabit necessário para transmitir os 10 pacotes grandes é:
(10 x 1500 x 8) = 120.000 bits transmitidos em 120 microssegundos
Se esse pacote precisar cruzar oito ou nove switches ao passar pela rede, pode ocorrer um atraso de aproximadamente 1 milissegundo. Isso inclui apenas atrasos na fila de saída do switch cruzado na rede.
Observação: se você precisar colocar em fila os mesmos 10 pacotes grandes em uma interface de 10MB (por exemplo, conectados a um telefone IP e a um PC), o atraso será:
(10 x 1500 x 8) = 120.000 bits transmitidos em 12 milissegundos
A implementação da programação de saída garante que os pacotes de voz com um CoS de 5 sejam colocados na fila de prioridade estrita e sejam enviados antes de qualquer pacote com um CoS inferior a 5. Isso reduz o atraso.
Outro benefício importante do agendamento de saída é a redução do jitter. Jitter é a variação no atraso para pacotes dentro do mesmo fluxo. Este cenário de exemplo mostra como o agendamento de saída pode reduzir o jitter:
Neste cenário, a mesma porta de saída precisa enviar dois fluxos:
Um fluxo de voz de entrada em uma porta Ethernet de 10 MB.
Um fluxo FTP de entrada em uma porta de uplink 1 Gigabit Ethernet.
Os dois fluxos deixam o switch através da mesma porta de saída. Este exemplo mostra o que pode ocorrer sem o uso do agendamento de saída. Todos os pacotes de dados grandes podem ser intercalados entre dois pacotes de voz. Isso cria instabilidade na recepção do pacote de voz do mesmo fluxo. Há um atraso maior entre a recepção do pacote 1 e do pacote n + 1 à medida que o switch transmite o pacote de dados grande. No entanto, o atraso entre n + 1 e n + 2 é negligenciável. Isso resulta em instabilidade no fluxo de tráfego de voz. Você pode facilmente evitar esse problema com o uso de uma fila de prioridade estrita. Assegure-se de mapear o valor de CoS dos pacotes de voz para a fila de prioridade estrita.
Neste documento, você viu estudos de caso de como configurar e solucionar problemas de programação de fila de saída em um Catalyst 6500/6000 que executa o Cisco IOS Software. Você também viu as vantagens do agendamento de saída na maioria das redes com tráfego de voz:
Evita a queda de tráfego crítico em caso de excesso de assinatura da porta de saída.
Reduz o atraso.
Reduz a tremulação.