La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive la struttura della coda e i buffer sulla piattaforma Catalyst 3650/3850 e fornisce esempi per ridurre le perdite di output.
Cisco raccomanda la conoscenza di base di Quality of Service (QoS) sulla piattaforma Catalyst.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Nota: le modifiche ai comandi QoS CLI versione 16.x.x e successive sono documentate in questa guida per la risoluzione dei problemi di output sugli switch Catalyst 9000. Questo documento è Catalyst serie 9000, ma condivide lo stesso ASIC di 3850. Utilizzare questa guida per lo switch 3850 sulle versioni 16.x.x o successive di Cisco IOS® XE.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
I cali di output sono generalmente il risultato di un'eccessiva sottoscrizione dell'interfaccia causata da molti a uno o da un trasferimento da 10 gig a 1 gig. I buffer di interfaccia sono una risorsa limitata e possono assorbire una frammentazione solo fino a un punto dopo il quale i pacchetti possono cadere. Se si sintonizzano i buffer, è possibile ottenere una certa protezione, ma non è possibile garantire uno scenario di perdita dell'output pari a zero.
Si consiglia di eseguire la versione più recente della versione 03.06 o 03.07 per ottenere allocazioni di buffer appropriate a causa di alcuni bug noti nei codici meno recenti.
In genere, i buffer vengono allocati in modo statico per ogni coda e quando si aumenta il numero di code, la quantità di buffer riservati diminuisce. Ciò è inefficiente e può ridurre il numero di buffer necessari per gestire i frame per tutte le code. Per ovviare a questo tipo di limitazione, la piattaforma Catalyst 3650/3850 utilizza buffer hardware e soft buffer.
Allocazione buffer predefinita senza criteri del servizio applicati
L'allocazione di buffer predefinita per una porta da 1 GB è 300 buffer e per una porta da 10 GB è 1800 buffer (1 buffer = 256 byte). La porta può utilizzare fino al 400% delle impostazioni predefinite allocate dal pool comune con impostazioni predefinite, ovvero 1200 buffer e 7200 buffer rispettivamente per interfaccia 1 Gig e interfaccia 10Gig.
Il limite predefinito del soft buffer è impostato su 400 (che è la soglia massima). La soglia determina il numero massimo di soft buffer che possono essere presi in prestito dal pool comune.
Quando non viene applicato alcun criterio di servizio, sono presenti 2 code predefinite (coda 0 e coda 1). La coda 0 viene utilizzata per il controllo del traffico (DSCP 32, 48 o 56), mentre la coda 1 viene utilizzata per il traffico di dati.
Per impostazione predefinita, alla coda 0 può essere assegnato il 40% dei buffer disponibili per l'interfaccia come buffer hardware. ovvero 120 buffer allocati per la coda 0 nel contesto delle porte 1G; 720 buffer nel contesto delle porte 10G. Il valore Softmax, il numero massimo di soft buffer, per questa coda, è impostato su 480 (calcolato come 400% di 120) per le porte da 1 GB e su 2880 per le porte da 10 GB, dove 400 è la soglia massima predefinita configurata per qualsiasi coda.
Nessun buffer hardware allocato per la coda 1. Il valore del soft buffer per la coda-1 viene calcolato come il 400% del buffer dell'interfaccia che rimane dopo l'allocazione alla coda-0. Pertanto, è il 400% di 180 per l'interfaccia da 1 Gig e il 400% di 1800 per l'interfaccia da 10 Gig.
Il show comando che è possibile utilizzare per visualizzare questa allocazione è
show platform qos queue config <interface>.
Per un'interfaccia da 1 Gig:
3850#show platform qos queue config gigabitEthernet 1/0/1 DATA Port:20 GPN:66 AFD:Disabled QoSMap:0 HW Queues: 160 - 167 DrainFast:Disabled PortSoftStart:1 - 1080 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 5 120 6 480 6 320 0 0 3 1440 1 1 4 0 7 720 3 480 2 180 3 1440 2 1 4 0 5 0 5 0 0 0 3 1440 3 1 4 0 5 0 5 0 0 0 3 1440 4 1 4 0 5 0 5 0 0 0 3 1440 5 1 4 0 5 0 5 0 0 0 3 1440 6 1 4 0 5 0 5 0 0 0 3 1440 7 1 4 0 5 0 5 0 0 0 3 1440 <<output omitted>>
Per un'interfaccia 10Gig:
3850#show platform qos queue config tenGigabitEthernet 1/0/37 DATA Port:1 GPN:37 AFD:Disabled QoSMap:0 HW Queues: 8 - 15 DrainFast:Disabled PortSoftStart:2 - 6480 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 6 720 8 2880 7 1280 0 0 4 8640 1 1 4 0 9 4320 8 1920 3 1080 4 8640 2 1 4 0 5 0 5 0 0 0 4 8640 3 1 4 0 5 0 5 0 0 0 4 8640 4 1 4 0 5 0 5 0 0 0 4 8640
<<output omitted>>
Hardmax o Hard buffer indica la quantità di buffer sempre riservata e disponibile per questa coda.
Softmax o Soft Buffer indica la quantità di buffer che può essere presa in prestito da altre code o pool globale. Il numero totale di Softmax per interfaccia da 1 Gig è 1200 (400% di 300) e 7200 buffer se è un'interfaccia da 10 Gig. Quando si applica una regola di servizio, è possibile creare una coda aggiuntiva per "Class default" se non viene creata esplicitamente. In questa coda rientra tutto il traffico che non corrisponde nelle classi definite in precedenza. Impossibile trovare un'istruzione match in questa coda.
Modifica allocazione buffer
Per modificare i buffer nella piattaforma 3650/3850, allegare una policy sui servizi nell'interfaccia corrispondente. È possibile modificare l'allocazione dei buffer Hardmax e Softmax con la policy di servizio.
Calcoli di buffer hardware e soft buffer
In questo modo il sistema alloca Hardmax e Softmax per ciascuna coda:
Buffer porta totale = 300 (1G) o 1800 (10G)
Se il totale delle code è 5 (5 classi), per impostazione predefinita a ogni coda viene assegnato il 20% di buffer.
Coda di priorità
1 Gig:
HardMax = Oper_Buff = 20% di 300 = 60.
qSoftMax = (Oper_Buff * Max_Threshold)/100=60*400/100=240
10 Gb
HardMax = Oper_Buff = 20% di 1800 = 360
qsoftMax = (Oper_Buff * Max_Threshold)/100 = 360*400/100= 1440
Coda non prioritaria
1 Gig:
HardMax = 0
qSoftMax = (Oper_Buffer*Max_Threshold)/100 = 300*20/100= 60. 400% di 60 = 240
10 Gig:
HardMax = 0
qSoftMax = (Oper_Buffer*Max_Threshold)/100 = 1800*20/100= 360. 400% di 360 = 1440
Usa criteri del servizio per allocazione buffer Hardmax o Softmax
se si applica una policy di servizio, solo la "coda Priorità con livello 1/2" ottiene l'Hardmax. Negli esempi seguenti viene illustrata l'allocazione del buffer per criteri di servizio specifici nell'interfaccia da 1 Gig e nell'interfaccia da 10 Gig. Con la configurazione predefinita a cui non è applicato alcun criterio del servizio, alla coda 0 viene assegnato il valore Hardmax predefinito di 120 se il collegamento è un collegamento da 1 Gig e 720 buffer se il collegamento è un collegamento da 10 Gig.
3850#show platform qos queue config gigabitEthernet 1/0/1 DATA Port:0 GPN:119 AFD:Disabled QoSMap:0 HW Queues: 0 - 7 DrainFast:Disabled PortSoftStart:1 - 1080 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 5 120 6 480 6 320 0 0 3 1440 1 1 4 0 7 720 3 480 2 180 3 1440 2 1 4 0 5 0 5 0 0 0 3 1440
<<output omitted>>
3850#show platform qos queue config tenGigabitEthernet 1/0/37
DATA Port:1 GPN:37 AFD:Disabled QoSMap:0 HW Queues: 8 - 15
DrainFast:Disabled PortSoftStart:2 - 6480
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 6 720 8 2880 7 1280 0 0 4 8640
1 1 4 0 9 4320 8 1920 3 1080 4 8640
2 1 4 0 5 0 5 0 0 0 4 8640
<<output omitted>>
Esempio 1
Quando si applica una policy di servizio, se non si configura una coda di priorità o se non si imposta un livello di coda di priorità, alla coda non può essere assegnato alcun valore Hardmax.
Per un'interfaccia da 1 Gig:
policy-map MYPOL
class ONE
priority percent 20
class TWO
bandwidth percent 40
class THREE
bandwidth percent 10
class FOUR
bandwidth percent 5
3850#show run interface gig1/0/1
Current configuration : 67 bytes
!
interface GigabitEthernet1/0/1
service-policy output MYPOL
end
3800#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:2 - 360
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 4 0 8 240 7 160 3 60 4 480
1 1 4 0 8 240 7 160 3 60 4 480
2 1 4 0 8 240 7 160 3 60 4 480
3 1 4 0 8 240 7 160 3 60 4 480
4 1 4 0 8 240 7 160 3 60 4 480
<<output omitted>>
!--- There are 5 classes present though you only created 4 classes.
!--- The 5th class is the default class.
!--- Each class represent a queue and the order in which it is shown is the order in which
!--- it is present in the running configuration when checking "show run | sec policy-map".
Per un'interfaccia 10Gig:
policy-map MYPOL class ONE priority percent 20 class TWO bandwidth percent 40 class THREE bandwidth percent 10 class FOUR bandwidth percent 5 3850#show run interface TenGigabitEthernet1/0/37 Current configuration : 67 bytes ! interface TenGigabitEthernet1/0/37 service-policy output MYPOL end 3850#show platform qos queue config tenGigabitEthernet 1/0/40 DATA Port:2 GPN:40 AFD:Disabled QoSMap:1 HW Queues: 16 - 23 DrainFast:Disabled PortSoftStart:4 - 2160 ----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 4 0 10 1440 9 640 4 360 5 2880
1 1 4 0 10 1440 9 640 4 360 5 2880
2 1 4 0 10 1440 9 640 4 360 5 2880
3 1 4 0 10 1440 9 640 4 360 5 2880
4 1 4 0 10 1440 9 640 4 360 5 2880
5 1 4 0 5 0 5 0 0 0 5 2880 <<output omitted>>
Esempio 2
Quando si applica il livello di priorità 1, la coda 0 ottiene 60 buffer come Hardmax.
Per un'interfaccia da 1 Gig:
policy-map MYPOL
class ONE
priority level 1 percent 20
class TWO
bandwidth percent 40
class THREE
bandwidth percent 10
class FOUR
bandwidth percent 5
3850#show run interface gig1/0/1
Current configuration : 67 bytes
!
interface GigabitEthernet1/0/1
service-policy output MYPOL
end
BGL.L.13-3800-1#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:2 - 360
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 6 60 8 240 7 160 0 0 4 480
1 1 4 0 8 240 7 160 3 60 4 480
2 1 4 0 8 240 7 160 3 60 4 480
3 1 4 0 8 240 7 160 3 60 4 480
4 1 4 0 8 240 7 160 3 60 4 480
<<output omitted>>
Per un'interfaccia 10Gig:
policy-map MYPOL class ONE priority level 1 percent 20 class TWO bandwidth percent 40 class THREE bandwidth percent 10 class FOUR bandwidth percent 5 3850#show run interface Te1/0/37 Current configuration : 67 bytes ! interface TenGigabitEthernet1/0/37 service-policy output MYPOL end 3850_1#show platform qos queue config tenGigabitEthernet 1/0/37 DATA Port:2 GPN:40 AFD:Disabled QoSMap:1 HW Queues: 16 - 23 DrainFast:Disabled PortSoftStart:3 - 2160 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 7 360 10 1440 9 640 0 0 5 2880 1 1 4 0 10 1440 9 640 4 360 5 2880 2 1 4 0 10 1440 9 640 4 360 5 2880 3 1 4 0 10 1440 9 640 4 360 5 2880 4 1 4 0 10 1440 9 640 4 360 5 2880 5 1 4 0 5 0 5 0 0 0 5 2880 <<output omitted>>
Esempio 3
Per questo esempio, viene aggiunta una classe supplementare. Il numero totale di code diventa 6. Con 2 livelli di priorità configurati, ogni coda ottiene 51 buffer come Hardmax. La matematica è la stessa dell'esempio precedente.
Per l'interfaccia da 1 Gig:
policy-map MYPOL
class ONE
priority level 1 percent 20
class TWO
priority level 2 percent 10
class THREE
bandwidth percent 10
class FOUR
bandwidth percent 5
class FIVE
bandwidth percent 10
3850#show run interface gigabitEthernet1/0/1
Current configuration : 67 bytes
!
interface GigabitEthernet1/0/1
service-policy output MYPOL
end
3850#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:16 GPN:10 AFD:Disabled QoSMap:1 HW Queues: 128 - 135
DrainFast:Disabled PortSoftStart:3 - 306
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 7 51 10 204 9 136 0 0 5 408
1 1 7 51 10 204 9 136 0 0 5 408
2 1 4 0 10 204 9 136 4 51 5 408
3 1 4 0 10 204 9 136 4 51 5 408
4 1 4 0 11 192 10 128 5 48 5 408
5 1 4 0 11 192 10 128 5 48 5 408
6 1 4 0 5 0 5 0 0 0 5 408
<<output omitted>>
Per un'interfaccia 10Gig:
policy-map MYPOL class ONE priority level 1 percent 20 class TWO priority level 2 percent 10 class THREE bandwidth percent 10 class FOUR bandwidth percent 5 class FIVE bandwidth percent 10 3850#show run interface Te1/0/37 Current configuration : 67 bytes ! interface TenGigabitEthernet1/0/37 service-policy output MYPOL end 3850_2#show platform qos queue config tenGigabitEthernet 1/0/37 DATA Port:2 GPN:40 AFD:Disabled QoSMap:1 HW Queues: 16 - 23 DrainFast:Disabled PortSoftStart:4 - 1836 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 8 306 12 1224 11 544 0 0 6 2448 1 1 8 306 12 1224 11 544 0 0 6 2448 2 1 4 0 12 1224 11 544 6 306 6 2448 3 1 4 0 12 1224 11 544 6 306 6 2448 4 1 4 0 13 1152 12 512 7 288 6 2448 5 1 4 0 13 1152 12 512 7 288 6 2448 6 1 4 0 5 0 5 0 0 0 6 2448 <<output omitted>>
Nota: è possibile allocare meno buffer a poche code. Si tratta dei valori che non possono essere inseriti nel calcolo Softmax per la coda di priorità e la coda non di priorità durante la combinazione di alcune configurazioni.
In sintesi, più code si creano, meno buffer ogni coda ottiene in termini di Hardmax e Softmax (poiché Hardmax dipende anche dal valore Softmax).
Dalla versione 3.6.3 o 3.7.2, il valore massimo per Softmax può essere modificato con il comando CLI
qos queue-softmax-multiplier 1200 con 100 come valore predefinito. Se è configurato come 1200, il valore Softmax per le code non prioritarie e non primarie (!=livello 1) viene moltiplicato per 12 dai valori predefiniti. Questo comando ha effetto solo sulle porte a cui è collegata una mappa dei criteri. Non è inoltre applicabile al livello di priorità 1 della coda.
Usa criteri servizio per modificare manualmente il valore del buffer Softmax
Esempio 1
Configurazione dei criteri del servizio e allocazione del buffer corrispondente:
policy-map TEST_POLICY
class ONE
priority level 1 percent 40
class TWO
bandwidth percent 40
class THREE
bandwidth percent 10
3850#show run interface gigabitEthernet1/0/1
Current configuration : 67 bytes
!
interface GigabitEthernet1/0/1
service-policy output TEST_POLICY
end
3850#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:2 - 450
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 6 75 8 300 7 200 0 0 4 600
1 1 4 0 8 300 7 200 3 75 4 600
2 1 4 0 8 300 7 200 3 75 4 600
3 1 4 0 8 300 7 200 3 75 4 600
<<output omitted>>
I buffer vengono suddivisi equamente tra le code. Se si utilizza il comando bandwidth, viene modificato solo il peso per ogni coda e il modo in cui lo scheduler agisce su di essa.
Per regolare il valore Softmax, dovete utilizzare il queue-buffer ratio comando nella rispettiva classe.
policy-map TEST_POLICY class ONE priority level 1 percent 40 class TWO bandwidth percent 40 queue-buffers ratio 50 <--------------- class THREE bandwidth percent 10 class FOUR bandwidth percent 5
Queste sono le nuove allocazioni di buffer.
Per l'interfaccia da 1 Gig:
3850#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:0 - 900
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 6 39 8 156 7 104 0 0 0 1200
1 1 4 0 9 600 8 400 3 150 0 1200
2 1 4 0 8 156 7 104 4 39 0 1200
3 1 4 0 10 144 9 96 5 36 0 1200
4 1 4 0 10 144 9 96 5 36 0 1200
La coda 1 ottiene il 50% del buffer soft, ovvero 600 buffer. Gli altri buffer vengono allocati alle altre code in base all'algoritmo.
Uscita simile per un'interfaccia 10Gig:
3850#show platform qos queue config tenGigabitEthernet 1/0/37 DATA Port:2 GPN:40 AFD:Disabled QoSMap:1 HW Queues: 16 - 23 DrainFast:Disabled PortSoftStart:4 - 1836 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 7 234 10 936 9 416 0 0 5 7200 1 1 4 0 11 3600 10 1600 4 900 5 7200 2 1 4 0 10 936 9 416 5 234 5 7200 3 1 4 0 4 864 11 384 1 216 5 7200 4 1 4 0 4 864 11 384 1 216 5 7200 5 1 4 0 5 0 5 0 0 0 5 7200 <<output omitted>>
Nota: è possibile allocare meno buffer ad alcune code. Questo è previsto perché i valori non possono essere contenuti nel calcolo Softmax per la coda di priorità e la coda non di priorità quando vengono combinate determinate configurazioni. C'è un algoritmo interno che se ne occupa.
Esempio 2
Allocare tutto il buffer Softmax alla singola coda predefinita.
È possibile visualizzare meno buffer allocati ad alcune code. Questo è previsto perché i valori non possono essere contenuti nel calcolo Softmax per la coda di priorità e la coda non di priorità quando sono configurate determinate combinazioni. C'è un algoritmo interno che se ne occupa. È possibile allocare meno buffer a poche code. Questo è previsto perché i valori non possono essere contenuti nel calcolo Softmax per la coda di priorità e la coda non di priorità quando sono configurate determinate combinazioni. C'è un algoritmo interno che se ne occupa.
policy-map NODROP class class-default bandwidth percent 100 queue-buffers ratio 100
I risultati della configurazione QoS sono:
3850#show platform qos queue config GigabitEthernet 1/1/1 DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175 DrainFast:Disabled PortSoftStart:0 - 900 ---------------------------------------------------------- DTS Hardmax Softmax PortSMin GlblSMin PortStEnd --- -------- -------- -------- --------- --------- 0 1 4 0 8 1200 7 800 3 300 2 2400 1 1 4 0 5 0 5 0 0 0 2 2400
Non è presente alcun buffer Hardmax poiché il criterio viene applicato a un'interfaccia e non ha alcuna coda di priorità con "level" impostato. Non appena si applica la mappa dei criteri, la seconda coda viene disabilitata e rimane solo una coda nel sistema.
Tuttavia, tutti i pacchetti utilizzano questa singola coda (inclusi i pacchetti di controllo come OSPF/EIGRP/STP). In caso di congestione (broadcast storm), la rete può subire interruzioni. Ciò si verifica anche se sono state definite altre classi per i pacchetti di controllo corrispondenti.
Caso di studio: calo dell'output
Per questo test, il generatore di traffico IXIA è collegato a un'interfaccia da 1 Gigabit e la porta di uscita è un'interfaccia da 100 Mbps. Si tratta di una connessione da 1 Gbps a 100 Mbps e un burst di 1 Gig di pacchetti viene inviato per 1 secondo. Ciò può causare il calo dell'output sull'interfaccia di 100 mbps in uscita. Con la configurazione predefinita (nessun criterio del servizio applicato), questo è il numero di cali di output dopo l'invio di 1:
3850#show interfaces gig1/0/1 | in output drop Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 497000
Queste cadute vengono rilevate in Th2, che è la soglia predefinita. Per impostazione predefinita, il sistema può utilizzare la soglia massima come soglia di rilascio, ovvero Drop-Th2.
3800#show platform qos queue stats gigabitEthernet 1/0/1 <snip> DATA Port:21 Drop Counters ------------------------------- Queue Drop-TH0 Drop-TH1 Drop-TH2 SBufDrop QebDrop ----- ----------- ----------- ----------- ----------- ----------- 0 0 0 497000 0 0 1 0 0 0 0 0
Quindi, configurare i criteri del servizio per regolare il buffer:
policy-map TEST_POLICY
class class-default
bandwidth percent 100
queue-buffers ratio 100
3850#show run interface gigabitEthernet1/0/1
Current configuration : 67 bytes
!
interface GigabitEthernet1/0/1
service-policy output TEST_POLICY
end
3850#show platform qos queue config gigabitEthernet 2/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:0 - 900
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 4 0 8 1200 7 800 3 300 2 2400 <-- queue 0 gets all the buffer.
3850#show interfaces gigabitEthernet1/0/1 | include output drop
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 385064
Le cadute si sono ridotte da 497000 a 385064 per lo stesso traffico burst. Eppure, ci sono ancora delle gocce. Quindi, configurare il
qos queue-softmax-multiplier 1200 global config comando.
3850#show platform qos queue config gigabitEthernet 1/0/1
DATA Port:21 GPN:65 AFD:Disabled QoSMap:1 HW Queues: 168 - 175
DrainFast:Disabled PortSoftStart:0 - 900
----------------------------------------------------------
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd
--- -------- -------- -------- --------- ---------
0 1 4 0 8 10000 7 800 3 300 2 10000
3850#show interfaces gigabitEthernet1/0/1 | in output drop
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0
Il valore Softmax per la coda 0 può arrivare a 10.000 buffer e, di conseguenza, le cadute sono pari a zero.
Nota: questo tipo di scenario non è possibile in quanto anche altre interfacce possono utilizzare il buffer, ma ciò può sicuramente aiutare a ridurre le perdite di pacchetti a un certo livello.
Il buffer soft massimo disponibile per un'interfaccia può essere aumentato con questo comando. Tuttavia, è necessario tenere presente che questo è disponibile solo se nessun'altra interfaccia utilizza questi buffer.
Riepilogo
1. Quando si creano più code, si ottiene meno buffer per ciascuna coda.
2. Il numero totale di buffer disponibili può essere aumentato con il qos queue-softmax-multiplier <value>comando.
3. Se si definisce solo 1 classe-default, per regolare il buffer, tutto il traffico ricade sotto la singola coda (che include i pacchetti di controllo). Tenere presente che quando tutto il traffico viene inserito in una coda, non vi è classificazione tra traffico di controllo e traffico di dati e durante il tempo di congestione, il traffico di controllo potrebbe cadere. Pertanto, si consiglia di creare almeno un'altra classe per il controllo del traffico. I pacchetti di controllo generati dalla CPU vanno sempre alla prima coda di priorità anche se non corrispondono nella mappa delle classi. Se non è stata configurata alcuna coda di priorità, viene visualizzata la prima coda dell'interfaccia, ovvero la coda 0.
4. Prima dell'ID bug Cisco CSCuu14019, le interfacce non visualizzano i contatori di "output drop". è necessario eseguire l' show platform qos queue stats output per verificare la presenza di errori.
5. Una richiesta di miglioramento, l'ID bug Cisco CSCuz86625 , è stata inviata per consentirci di configurare il moltiplicatore soft-max senza l'uso di alcuna policy sui servizi.(Risolto nella versione 3.6.6 e successive)
Informazioni correlate
Revisione | Data di pubblicazione | Commenti |
---|---|---|
6.0 |
04-Dec-2023 |
Certificazione |
4.0 |
02-Dec-2022 |
L'URL aggiunto è stato aggiunto alla sezione Risoluzione dei problemi di output sugli switch Catalyst 9000 e può essere utilizzato per lo switch 3850 con software 16.x.x e versioni successive |
1.0 |
28-Jul-2016 |
Versione iniziale |