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).
In questo documento vengono descritte le operazioni di accodamento e buffering sui dispositivi Cisco Nexus serie 9000 Switch con Cisco Scale ASIC e software NX-OS.
Cisco consiglia di comprendere le nozioni di base della commutazione Ethernet su reti medie condivise e la necessità di eseguire code/buffer in queste reti. Cisco consiglia inoltre di comprendere le nozioni di base di Quality of Service (QoS) e di buffering sugli switch Cisco Nexus. Per ulteriori informazioni, fare riferimento alla documentazione qui:
Per la stesura del documento, sono stati usati switch Cisco Nexus serie 9000 con Cloud Scale ASIC con software NX-OS versione 9.3(8).
La procedura illustrata in questo documento è applicabile solo all'hardware mostrato di seguito.
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.
Questo documento descrive i meccanismi di accodamento e buffering su switch Cisco Nexus serie 9000 dotati di Cisco Cloud Scale ASIC (Application-Specific Integrated Circuit) con software NX-OS. Questo documento descrive anche i sintomi di una sovrascrittura delle porte su questa piattaforma, come i contatori di interfaccia per l'eliminazione dell'output diverso da zero e i syslog che indicano che le soglie del buffer sono state superate.
Gli switch Cisco Nexus serie 9000 con Cisco Cloud Scale ASIC implementano un'architettura di buffer in uscita a "memoria condivisa". Un ASIC è diviso in una o più "porzioni". Ogni slice ha un proprio buffer e solo le porte all'interno di quella slice possono usarlo. Fisicamente, ogni porzione è divisa in "celle", che rappresentano porzioni del buffer. Le sezioni vengono suddivise in "gruppi di pool". A ogni gruppo di pool viene allocato un certo numero di celle che non vengono condivise tra gruppi di pool distinti. Ogni gruppo di pool dispone di uno o più "pool", che rappresentano una classe di servizio (CoS) per il traffico unicast o multicast. In questo modo, ciascun gruppo di pool garantisce risorse buffer per i tipi di traffico serviti dal gruppo di pool.
L'immagine mostra visivamente come i vari modelli di Cisco Cloud Scale ASIC sono divisi in sezioni. L'immagine mostra anche come a ciascuna porzione viene allocata una certa quantità di buffer attraverso le celle.
Ogni modello di switch Nexus serie 9000 e di scheda di linea Nexus 9500 ha un numero diverso di ASIC Cisco Cloud Scale all'interno, nonché un layout diverso che determina le porte del pannello anteriore a cui connettersi l'ASIC. Nelle immagini seguenti vengono illustrati due esempi che utilizzano la scheda di linea N9K-X9736C-FX e lo switch N9K-C9336C-FX2.
La scheda di linea N9K-C9736C-FX dispone di 4 ASIC Cisco Cloud Scale LS1800FX con una slice per ASIC. Internamente, ogni ASIC è definito "unità". A ciascuna slice viene fatto riferimento come "istanza" e viene assegnato un numero intero a base zero che identifica in modo univoco la slice all'interno dello chassis. Il risultato sono le permutazioni mostrate di seguito:
Lo switch N9K-C9336C-FX2 dispone di un ASIC Cisco Cloud Scale LS3600FX2 con due slice per ASIC. Internamente, ogni ASIC è definito "unità". A ciascuna slice viene fatto riferimento come "istanza" e viene assegnato un numero intero a base zero che identifica in modo univoco la slice all'interno dello chassis. Il risultato sono le permutazioni mostrate di seguito:
Ogni scheda di linea e ogni commutatore hanno un layout diverso e producono numeri di istanza diversi. Per progettare la rete intorno a flussi di traffico che richiedono un'elevata larghezza di banda, è necessario conoscere il layout dello switch o della scheda di linea con cui si desidera lavorare. Il comando show interface hardware-mappings può essere usato per correlare ciascuna porta del pannello anteriore a un'unità (ASIC) e a un numero di slice. Di seguito è riportato un esempio di interfaccia Ethernet2/16 di uno switch Nexus 9504 con scheda di linea N9K-X9736C-FX inserita nello slot 2 dello chassis, collegata all'unità 1, slice 0.
switch# show interface hardware-mappings Legends: SMod - Source Mod. 0 is N/A Unit - Unit on which port resides. N/A for port channels HPort - Hardware Port Number or Hardware Trunk Id: HName - Hardware port name. None means N/A FPort - Fabric facing port number. 255 means N/A NPort - Front panel port number VPort - Virtual Port Number. -1 means N/A Slice - Slice Number. N/A for BCM systems SPort - Port Number wrt Slice. N/A for BCM systems SrcId - Source Id Number. N/A for BCM systems MacIdx - Mac index. N/A for BCM systems MacSubPort - Mac sub port. N/A for BCM systems ------------------------------------------------------------------------------------------------------- Name Ifindex Smod Unit HPort FPort NPort VPort Slice SPort SrcId MacId MacSP VIF Block BlkSrcID ------------------------------------------------------------------------------------------------------- Eth2/1 1a080000 5 0 16 255 0 -1 0 16 32 4 0 145 0 32 Eth2/2 1a080200 5 0 12 255 4 -1 0 12 24 3 0 149 0 24 Eth2/3 1a080400 5 0 8 255 8 -1 0 8 16 2 0 153 0 16 Eth2/4 1a080600 5 0 4 255 12 -1 0 4 8 1 0 157 0 8 Eth2/5 1a080800 5 0 0 255 16 -1 0 0 0 0 0 161 0 0 Eth2/6 1a080a00 5 0 56 255 20 -1 0 56 112 14 0 165 1 40 Eth2/7 1a080c00 5 0 52 255 24 -1 0 52 104 13 0 169 1 32 Eth2/8 1a080e00 6 1 16 255 28 -1 0 16 32 4 0 173 0 32 Eth2/9 1a081000 6 1 12 255 32 -1 0 12 24 3 0 177 0 24 Eth2/10 1a081200 6 1 8 255 36 -1 0 8 16 2 0 181 0 16 Eth2/11 1a081400 6 1 4 255 40 -1 0 4 8 1 0 185 0 8 Eth2/12 1a081600 6 1 0 255 44 -1 0 0 0 0 0 189 0 0 Eth2/13 1a081800 6 1 56 255 48 -1 0 56 112 14 0 193 1 40 Eth2/14 1a081a00 6 1 52 255 52 -1 0 52 104 13 0 197 1 32 Eth2/15 1a081c00 7 2 16 255 56 -1 0 16 32 4 0 201 0 32 Eth2/16 1a081e00 7 2 12 255 60 -1 0 12 24 3 0 205 0 24 Eth2/17 1a082000 7 2 8 255 64 -1 0 8 16 2 0 209 0 16 Eth2/18 1a082200 7 2 4 255 68 -1 0 4 8 1 0 213 0 8 Eth2/19 1a082400 7 2 0 255 72 -1 0 0 0 0 0 217 0 0 Eth2/20 1a082600 7 2 56 255 76 -1 0 56 112 14 0 221 1 40 Eth2/21 1a082800 7 2 52 255 80 -1 0 52 104 13 0 225 1 32 Eth2/22 1a082a00 8 3 16 255 84 -1 0 16 32 4 0 229 0 32 Eth2/23 1a082c00 8 3 12 255 88 -1 0 12 24 3 0 233 0 24 Eth2/24 1a082e00 8 3 8 255 92 -1 0 8 16 2 0 237 0 16 Eth2/25 1a083000 8 3 4 255 96 -1 0 4 8 1 0 241 0 8 Eth2/26 1a083200 8 3 0 255 100 -1 0 0 0 0 0 245 0 0 Eth2/27 1a083400 8 3 56 255 104 -1 0 56 112 14 0 249 1 40 Eth2/28 1a083600 8 3 52 255 108 -1 0 52 104 13 0 253 1 32 Eth2/29 1a083800 5 0 48 255 112 -1 0 48 96 12 0 257 1 24 Eth2/30 1a083a00 5 0 44 255 116 -1 0 44 88 11 0 261 1 16 Eth2/31 1a083c00 6 1 48 255 120 -1 0 48 96 12 0 265 1 24 Eth2/32 1a083e00 6 1 44 255 124 -1 0 44 88 11 0 269 1 16 Eth2/33 1a084000 7 2 48 255 128 -1 0 48 96 12 0 273 1 24 Eth2/34 1a084200 7 2 44 255 132 -1 0 44 88 11 0 277 1 16 Eth2/35 1a084400 8 3 48 255 136 -1 0 48 96 12 0 281 1 24 Eth2/36 1a084600 8 3 44 255 140 -1 0 44 88 11 0 285 1 16
Quando si interpreta il syslog, l'ID istanza viene calcolato in base all'ordine di combinazione delle unità contigue e delle slice. Ad esempio, se un modulo Nexus 9500 o Nexus 9300 TOR (Top-of-Rack) ha due unità (ASIC) e due sezioni per unità, gli ID delle istanze possono essere i seguenti:
Se un modulo dispone di un'unità e di quattro sezioni, gli ID istanza possono essere:
Le interfacce collegate a una rete Ethernet sono in grado di trasmettere un solo pacchetto alla volta. Quando due pacchetti devono uscire contemporaneamente da un'interfaccia Ethernet, l'interfaccia Ethernet trasmette un pacchetto mentre memorizza l'altro. Una volta trasmesso il primo pacchetto, l'interfaccia Ethernet trasmette il secondo pacchetto dal buffer. Quando la somma totale del traffico che deve partire, un'interfaccia supera la larghezza di banda dell'interfaccia, l'interfaccia viene considerata sovrascritta. Ad esempio, se un totale di 15 Gb/s di traffico entra istantaneamente nello switch e deve uscire da un'interfaccia a 10 Gb/s, l'interfaccia a 10 Gb/s ha una sottoscrizione eccessiva in quanto non è in grado di trasmettere 15 Gb/s di traffico alla volta.
Uno switch Cisco Nexus serie 9000 con ASIC a scala cloud gestisce questa contesa tra risorse memorizzando il traffico all'interno dei buffer della slice ASIC associata all'interfaccia di uscita. Se la somma totale del traffico in uscita da un'interfaccia supera la larghezza di banda dell'interfaccia per un periodo di tempo esteso, i buffer della slice ASIC iniziano a riempire di pacchetti che devono uscire dall'interfaccia.
Quando i buffer della slice ASIC raggiungono il 90% di utilizzo, lo switch genera un syslog simile a quello mostrato di seguito:
%TAHUSD-SLOT2-4-BUFFER_THRESHOLD_EXCEEDED: Module 2 Instance 0 Pool-group buffer 90 percent threshold is exceeded!
Quando i buffer della slice ASIC sono completamente pieni, lo switch scarta il traffico aggiuntivo che deve uscire dall'interfaccia finché lo spazio nei buffer non diventa libero. Quando lo switch scarta il traffico, lo switch incrementa il contatore Output Discard sull'interfaccia di uscita.
Il contatore syslog generato e gli scarti di output diversi da zero sono entrambi sintomi di un'interfaccia sovrascritta. Ciascun sintomo viene analizzato più dettagliatamente nelle sottosezioni qui.
Di seguito è riportato un esempio del syslog BUFFER_THRESHOLD_EXCEEDED.
%TAHUSD-SLOTX-4-BUFFER_THRESHOLD_EXCEEDED: Module X Instance Y Pool-group buffer Z percent threshold is exceeded!
Questo syslog contiene tre informazioni chiave:
Il contatore dell'interfaccia Output Discards indica il numero di pacchetti ignorati che devono aver superato l'interfaccia ma non sono stati in grado di farlo perché il buffer della slice ASIC è pieno e non è in grado di accettare nuovi pacchetti. Il contatore Output Discards è visibile nell'output del comando show interface e mostra gli errori dei contatori dell'interfaccia, come mostrato di seguito.
switch# show interface Ethernet1/1 Ethernet1/1 is up admin state is up, Dedicated Interface Hardware: 1000/10000/25000/40000/50000/100000 Ethernet, address: 7cad.4f6d.f6d8 (bia 7cad.4f6d.f6d8) MTU 1500 bytes, BW 40000000 Kbit , DLY 10 usec reliability 255/255, txload 232/255, rxload 1/255 Encapsulation ARPA, medium is broadcast Port mode is trunk full-duplex, 40 Gb/s, media type is 40G Beacon is turned off Auto-Negotiation is turned on FEC mode is Auto Input flow-control is off, output flow-control is off Auto-mdix is turned off Rate mode is dedicated Switchport monitor is off EtherType is 0x8100 EEE (efficient-ethernet) : n/a admin fec state is auto, oper fec state is off Last link flapped 03:16:50 Last clearing of "show interface" counters never 3 interface resets Load-Interval #1: 30 seconds 30 seconds input rate 0 bits/sec, 0 packets/sec 30 seconds output rate 36503585488 bits/sec, 3033870 packets/sec input rate 0 bps, 0 pps; output rate 36.50 Gbps, 3.03 Mpps Load-Interval #2: 5 minute (300 seconds) 300 seconds input rate 32 bits/sec, 0 packets/sec 300 seconds output rate 39094683384 bits/sec, 3249159 packets/sec input rate 32 bps, 0 pps; output rate 39.09 Gbps, 3.25 Mpps RX 0 unicast packets 208 multicast packets 9 broadcast packets 217 input packets 50912 bytes 0 jumbo packets 0 storm suppression bytes 0 runts 0 giants 0 CRC 0 no buffer 0 input error 0 short frame 0 overrun 0 underrun 0 ignored 0 watchdog 0 bad etype drop 0 bad proto drop 0 if down drop 0 input with dribble 0 input discard 0 Rx pause TX 38298127762 unicast packets 6118 multicast packets 0 broadcast packets 38298133880 output packets 57600384931480 bytes 0 jumbo packets 0 output error 0 collision 0 deferred 0 late collision 0 lost carrier 0 no carrier 0 babble 57443534227 output discard <<< Output discards due to oversubcription 0 Tx pause switch# show interface Ethernet1/1 counters errors -------------------------------------------------------------------------------- Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize OutDiscards -------------------------------------------------------------------------------- Eth1/1 0 0 0 0 0 57443534227 -------------------------------------------------------------------------------- Port Single-Col Multi-Col Late-Col Exces-Col Carri-Sen Runts -------------------------------------------------------------------------------- Eth1/1 0 0 0 0 0 0 -------------------------------------------------------------------------------- Port Giants SQETest-Err Deferred-Tx IntMacTx-Er IntMacRx-Er Symbol-Err -------------------------------------------------------------------------------- Eth1/1 0 -- 0 0 0 0 -------------------------------------------------------------------------------- Port InDiscards -------------------------------------------------------------------------------- Eth1/1 0
Si consideri uno scenario in cui il traffico tra due generatori di traffico IXIA attraversa uno switch Nexus 9504 con due schede di linea N9K-X9736C-FX inserite negli slot 1 e 2 dello chassis. 100 Gb/s di traffico entra nello switch tramite l'interfaccia 100 Gb/s Ethernet1/1 e deve uscire dall'interfaccia 40 Gb/s Ethernet2/2. Pertanto, Ethernet2/2 ha una sottoscrizione eccessiva. Di seguito è riportata una topologia di questo scenario.
Poiché Nexus 9000 Cloud Scale ASIC utilizza un'architettura di buffer in uscita a memoria condivisa, è necessario controllare il buffer dell'interfaccia Ethernet2/2 in uscita per verificare la congestione. Nell'esempio, la scheda di linea inserita nello slot 2 è la scheda di linea in uscita, quindi è necessario utilizzare il comando attach module 2 prima di visualizzare il buffer hardware interno con il comando show hardware internal tah buffer counters. Si noti il contatore "Occupancy drops" diverso da zero per l'unità 0, il gruppo di pool 0 e i pool associati, che indica il numero di pacchetti scartati perché il buffer del gruppo di pool è completamente occupato.
switch# attach module 2
module-2# show hardware internal tah buffer counters Unit: 0 Slice: 0 ==================== |------------------------------------------------------------------------------------------------------------------| | Output Pool-Group drops | | Drop-PG No-drop CPU--PG LCPU-PG RCPU-PG SPAN-PG | |------------------------------------------------------------------------------------------------------------------| Occupancy drops 51152554987 0 0 0 0 0 | AQM drops 0 0 N/A N/A N/A N/A | |--------------------------------------------------------------------------------------------------------------------| | Output UC Pool counters | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Dynamic Threshold (cells) 93554 93554 93554 93554 93554 93554 93554 93554 | Occupancy drops 51152555398 0 0 0 0 0 0 0 | AQM drops 0 0 0 0 0 0 0 0 | |--------------------------------------------------------------------------------------------------------------------| | Output MC Pool counters | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Dynamic Threshold (cells) 93554 93554 93554 93554 93554 93554 93554 93554 | Dynamic Threshold (desc) 93554 93554 93554 93554 93554 93554 93554 93554 | Dynamic Threshold (inq thr) 64035 64035 64035 64035 64035 64035 64035 64035 | Occupancy drops 0 0 0 0 0 0 0 0 | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| | Additional counters | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| MEM cell drop reason : 0 MEM descriptor drop reason : 0 OPG cell drop reason : 0 OPG descriptor drop reason : 0 OPG CPU cell drop reason : 0 OPG CPU descriptor drop reason : 0 OPG SPAN cell drop reason : 0 OPG SPAN descriptor drop reason : 0 OPOOL cell drop reason : 0 OPOOL descriptor drop reason : 0 UC OQUEUE cell drop reason : 51152556479 MC OQUEUE cell drop reason : 27573307 OQUEUE descriptor drop reason : 0 MC OPOOL cell drop reason : 0 FWD DROP : 15 SOD : 0 BMM BP : 0 No Drop : 0 Packets received : 87480806439 TRUNC MTU : 0 TRUNK BMM BP : 0 VOQFC messages sent : 0 SOD messages sent : 0 SPAN desciptor drop : 0 Unit: 1 Slice: 0 ==================== |------------------------------------------------------------------------------------------------------------------| | Output Pool-Group drops | | Drop-PG No-drop CPU--PG LCPU-PG RCPU-PG SPAN-PG | |------------------------------------------------------------------------------------------------------------------| Occupancy drops 0 0 0 0 0 0 | AQM drops 0 0 N/A N/A N/A N/A | |--------------------------------------------------------------------------------------------------------------------| | Output UC Pool counters | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Dynamic Threshold (cells) 93554 93554 93554 93554 93554 93554 93554 93554 | Occupancy drops 0 0 0 0 0 0 0 0 | AQM drops 0 0 0 0 0 0 0 0 | |--------------------------------------------------------------------------------------------------------------------| | Output MC Pool counters | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Dynamic Threshold (cells) 93554 93554 93554 93554 93554 93554 93554 93554 | Dynamic Threshold (desc) 93554 93554 93554 93554 93554 93554 93554 93554 | Dynamic Threshold (inq thr) 64035 64035 64035 64035 64035 64035 64035 64035 | Occupancy drops 0 0 0 0 0 0 0 0 | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| | Additional counters | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| MEM cell drop reason : 0 MEM descriptor drop reason : 0 OPG cell drop reason : 0 OPG descriptor drop reason : 0 OPG CPU cell drop reason : 0 OPG CPU descriptor drop reason : 0 OPG SPAN cell drop reason : 0 OPG SPAN descriptor drop reason : 0 OPOOL cell drop reason : 0 OPOOL descriptor drop reason : 0 UC OQUEUE cell drop reason : 0 MC OQUEUE cell drop reason : 0 OQUEUE descriptor drop reason : 0 MC OPOOL cell drop reason : 0 FWD DROP : 8 SOD : 0 BMM BP : 0 No Drop : 0 Packets received : 45981341 TRUNC MTU : 0 TRUNK BMM BP : 0 VOQFC messages sent : 0 SOD messages sent : 0 SPAN desciptor drop : 0
Ogni tupla di unità/sezione ASIC è rappresentata da un'unica istanza identificata. L'output del comando show hardware internal buffer info pkt-stats visualizza informazioni dettagliate sul gruppo di pool congestionato (abbreviato come "PG") per ciascuna istanza. Il comando mostra anche il numero massimo/massimo cronologico di celle nel buffer che sono state utilizzate. Infine, il comando mostra uno snapshot istantaneo degli identificatori di porta ASIC di scala cloud delle porte con traffico memorizzato nel buffer. Di seguito è riportato un esempio di questo comando.
switch# attach module 2
module-2# show hardware internal buffer info pkt-stats Instance 0 ============ |------------------------------------------------------------------------------------------------------------| | Output Pool-Group Buffer Utilization (cells/desc) | | Drop-PG No-drop CPU--PG LCPU-PG RCPU-PG SPAN-PG | |------------------------------------------------------------------------------------------------------------| Total Instant Usage (cells) 59992 0 0 0 0 0 | Remaining Instant Usage (cells) 33562 0 1500 250 1500 1500 | Peak/Max Cells Used 90415 0 N/A N/A N/A N/A | Switch Cells Count 93554 0 1500 250 1500 1500 | Total Instant Usage (desc) 0 0 0 0 0 0 | Remaining Instant Usage (desc) 93554 0 1500 250 1500 1500 | Switch Desc Count 93554 0 1500 250 1500 1500 | |--------------------------------------------------------------------------------------------------------------------| | Output UC Pool Buffer Utilization (cells/desc) | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Total Instant Usage (cells) 60027 0 0 0 0 0 0 0 | Total Instant Usage (desc) 0 0 0 0 0 0 0 0 | Peak/Max Cells Used 62047 0 0 0 0 0 0 0 | |--------------------------------------------------------------------------------------------------------------------| | Output MC Pool Buffer Utilization (cells/desc) | | Pool 0 Pool 1 Pool 2 Pool 3 Pool 4 Pool 5 Pool 6 Pool 7 | |--------------------------------------------------------------------------------------------------------------------| Total Instant Usage (cells) 0 0 0 0 0 0 0 0 | Total Instant Usage (desc) 0 0 0 0 0 0 0 0 | Total Instant Usage (inq cells) 0 0 0 0 0 0 0 0 | Total Instant Usage (packets) 0 0 0 0 0 0 0 0 | Peak/Max Cells Used 60399 0 0 0 0 0 0 0 | |--------------------------------------------------------------------------| | Instant Buffer utilization per queue per port | | Each line displays the number of cells/desc utilized for a given | | port for each QoS queue | | One cell represents approximately 416 bytes | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| |ASIC Port Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 | |--------------+---------+---------+---------+---------+---------+--------+---------+---------+| [12] <<< ASIC Port 12 in Unit 0 Instance 0 is likely the congested egress interface UC-> 0 0 0 0 0 0 0 59988 | MC cells-> 0 0 0 0 0 0 0 0 | MC desc-> 0 0 0 0 0 0 0 0 |
Vedere anche la variazione del picco del comando. Utilizzare questo comando per associare il syslog a un potenziale picco in un particolare gruppo di pool, pool o porta.
switch# show hardware internal buffer info pkt-stats peak slot 1 ======= Instance 0 ============ |--------------+---------+---------+---------+---------+---------+| | Pool-Group Peak counters | |--------------+---------+---------+---------+---------+---------+| Drop PG : 0 No-drop PG : 0 |--------------+---------+---------+---------+---------+---------+| | Pool Peak counters | |--------------+---------+---------+---------+---------+---------+| MC Pool 0 : 0 MC Pool 1 : 0 MC Pool 2 : 0 MC Pool 3 : 0 MC Pool 4 : 0 MC Pool 5 : 0 MC Pool 6 : 0 MC Pool 7 : 0 UC Pool 0 : 0 UC Pool 1 : 0 UC Pool 2 : 0 UC Pool 3 : 0 UC Pool 4 : 0 UC Pool 5 : 0 UC Pool 6 : 0 UC Pool 7 : 0 |--------------+---------+---------+---------+---------+---------+| | Port Peak counters | | classes mapped to count_0: 0 1 2 3 4 5 6 7 | classes mapped to count_1: None |--------------+---------+---------+---------+---------+---------+| [0] <<< ASIC Port. This can be checked via "show hardware interface-mappings" count_0 : 0 count_1 : 0 [1] count_0 : 0 count_1 : 0
Il comando show interface hardware-mapping può essere usato per convertire l'identificatore della porta ASIC su scala cloud in una porta del pannello anteriore. Nell'esempio sopra riportato, la porta ASIC 12 (rappresentata dalla colonna SPort nell'output del comando show interface hardware-mapping) associata all'unità ASIC 0 sulla slice/istanza 0 contiene 59.988 celle occupate di 416 byte ciascuna. Di seguito è riportato un esempio del comando show interface hardware-mappings che mappa l'interfaccia alla porta Ethernet2/2 del pannello anteriore.
switch# show interface hardware-mappings Legends: SMod - Source Mod. 0 is N/A Unit - Unit on which port resides. N/A for port channels HPort - Hardware Port Number or Hardware Trunk Id: HName - Hardware port name. None means N/A FPort - Fabric facing port number. 255 means N/A NPort - Front panel port number VPort - Virtual Port Number. -1 means N/A Slice - Slice Number. N/A for BCM systems SPort - Port Number wrt Slice. N/A for BCM systems SrcId - Source Id Number. N/A for BCM systems MacIdx - Mac index. N/A for BCM systems MacSubPort - Mac sub port. N/A for BCM systems ------------------------------------------------------------------------------------------------------- Name Ifindex Smod Unit HPortFPort NPort VPort Slice SPort SrcId MacId MacSP VIF Block BlkSrcID ------------------------------------------------------------------------------------------------------- Eth2/2 1a080200 5 0 12 255 4 -1 0 12 24 3 0 149 0 24
È possibile correlare ulteriormente la sovrascrittura dell'interfaccia Ethernet2/2 con le perdite di coda QoS con il comando show queuing interface. Di seguito è riportato un esempio.
switch# show queuing interface Ethernet2/2 Egress Queuing for Ethernet2/2 [System] ------------------------------------------------------------------------------ QoS-Group# Bandwidth% PrioLevel Shape QLimit Min Max Units ------------------------------------------------------------------------------ 7 - 1 - - - 9(D) 6 0 - - - - 9(D) 5 0 - - - - 9(D) 4 0 - - - - 9(D) 3 0 - - - - 9(D) 2 0 - - - - 9(D) 1 0 - - - - 9(D) 0 100 - - - - 9(D) +-------------------------------------------------------------+ | QOS GROUP 0 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 35593332351| 18407162| | Tx Byts | 53532371857088| 27684371648| | WRED/AFD & Tail Drop Pkts | 53390604466| 27573307| | WRED/AFD & Tail Drop Byts | 80299469116864| 110293228| | Q Depth Byts | 24961664| 0| | WD & Tail Drop Pkts | 53390604466| 27573307| +-------------------------------------------------------------+ | QOS GROUP 1 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 2 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 3 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 4 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 5 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 6 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | QOS GROUP 7 | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| | WRED/AFD & Tail Drop Pkts | 0| 0| | WRED/AFD & Tail Drop Byts | 0| 0| | Q Depth Byts | 0| 0| | WD & Tail Drop Pkts | 0| 0| +-------------------------------------------------------------+ | CONTROL QOS GROUP | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 5704| 0| | Tx Byts | 725030| 0| | Tail Drop Pkts | 0| 0| | Tail Drop Byts | 0| 0| +-------------------------------------------------------------+ | SPAN QOS GROUP | +-------------------------------------------------------------+ | | Unicast |Multicast | +-------------------------------------------------------------+ | Tx Pkts | 0| 0| | Tx Byts | 0| 0| +-------------------------------------------------------------+ Per Slice Egress SPAN Statistics --------------------------------------------------------------- SPAN Copies Tail Drop Pkts 0 SPAN Input Queue Drop Pkts 0 SPAN Copies/Transit Tail Drop Pkts 0 SPAN Input Desc Drop Pkts 0
Infine, è possibile verificare che l'interfaccia Ethernet2/2 in uscita abbia un contatore dei rifiuti di output diverso da zero con il comando show interface. Di seguito è riportato un esempio.
switch# show interface Ethernet2/2 Ethernet2/2 is up admin state is up, Dedicated Interface Hardware: 1000/10000/25000/40000/50000/100000 Ethernet, address: 7cad.4f6d.f6d8 (bia 7cad.4f6d.f6d8) MTU 1500 bytes, BW 40000000 Kbit , DLY 10 usec reliability 255/255, txload 232/255, rxload 1/255 Encapsulation ARPA, medium is broadcast Port mode is trunk full-duplex, 40 Gb/s, media type is 40G Beacon is turned off Auto-Negotiation is turned on FEC mode is Auto Input flow-control is off, output flow-control is off Auto-mdix is turned off Rate mode is dedicated Switchport monitor is off EtherType is 0x8100 EEE (efficient-ethernet) : n/a admin fec state is auto, oper fec state is off Last link flapped 03:16:50 Last clearing of "show interface" counters never 3 interface resets Load-Interval #1: 30 seconds 30 seconds input rate 0 bits/sec, 0 packets/sec 30 seconds output rate 36503585488 bits/sec, 3033870 packets/sec input rate 0 bps, 0 pps; output rate 36.50 Gbps, 3.03 Mpps Load-Interval #2: 5 minute (300 seconds) 300 seconds input rate 32 bits/sec, 0 packets/sec 300 seconds output rate 39094683384 bits/sec, 3249159 packets/sec input rate 32 bps, 0 pps; output rate 39.09 Gbps, 3.25 Mpps RX 0 unicast packets 208 multicast packets 9 broadcast packets 217 input packets 50912 bytes 0 jumbo packets 0 storm suppression bytes 0 runts 0 giants 0 CRC 0 no buffer 0 input error 0 short frame 0 overrun 0 underrun 0 ignored 0 watchdog 0 bad etype drop 0 bad proto drop 0 if down drop 0 input with dribble 0 input discard 0 Rx pause TX 38298127762 unicast packets 6118 multicast packets 0 broadcast packets 38298133880 output packets 57600384931480 bytes 0 jumbo packets 0 output error 0 collision 0 deferred 0 late collision 0 lost carrier 0 no carrier 0 babble 57443534227 output discard <<< Output discards due to oversubcription 0 Tx pause
Se si osservano scarti di output su uno switch Nexus serie 9000 con ASIC Cloud Scale, è possibile risolvere il problema con uno o più metodi riportati di seguito:
In questa sezione del documento vengono fornite informazioni aggiuntive sui passaggi successivi da eseguire quando si incontrano il syslog BUFFER_THRESHOLD_EXCEEDED, gli scenari di congestione/sovrascrittura della rete e i contatori di interfaccia per l'eliminazione dell'output di incremento.
È possibile modificare l'intervallo di polling dello stato del buffer di sistema, che controlla la frequenza con cui il sistema esegue il polling dell'utilizzo corrente dei buffer delle slice ASIC. A tale scopo, usare il comando hardware profile buffer info poll-interval in modalità di configurazione globale. Il valore di configurazione predefinito è 5.000 millisecondi. Questa configurazione può essere modificata globalmente o per singolo modulo. Di seguito è riportato un esempio di questo comando di configurazione, con il quale è stato modificato in un valore di 1.000 millisecondi.
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# hardware profile buffer info poll-interval timer 1000 switch(config)# end switch# show running-config | include hardware.profile.buffer hardware profile buffer info poll-interval timer 1000 switch#
È possibile modificare il valore della soglia di utilizzo del buffer di uscita della porta, che determina quando il sistema genera il syslog BUFFER_THRESHOLD_EXCEEDED che indica che l'utilizzo del buffer della slice ASIC ha superato la soglia configurata. A tale scopo, usare il comando di configurazione globale hardware profile buffer info port-threshold. Il valore di configurazione predefinito è 90%. Questa configurazione può essere modificata globalmente o per singolo modulo. Di seguito è riportato un esempio di questo comando di configurazione, con il valore 80%.
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# hardware profile buffer info port-threshold threshold 80 switch(config)# end switch# show running-config | include hardware.profile.buffer hardware profile buffer info port-threshold threshold 80 switch#
È possibile modificare l'intervallo minimo tra i syslog BUFFER_THRESHOLD_EXCEEDED generati dallo switch. È inoltre possibile disabilitare completamente il syslog BUFFER_THRESHOLD_EXCEEDED. A tale scopo, usare il comando di configurazione globale timer syslog-interval informazioni sul buffer del profilo hardware. Il valore di configurazione predefinito è 120 secondi. È possibile disattivare completamente il syslog impostando il valore su 0 secondi. Di seguito è riportato un esempio di questo comando di configurazione, con il quale il syslog è interamente disabilitato.
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# hardware profile buffer info syslog-interval timer 0 switch(config)# end switch# show running-config | include hardware.profile.buffer hardware profile buffer info syslog-interval timer 0 switch#
È possibile raccogliere i log mostrati qui da uno switch interessato da uno scenario di congestione della rete per identificare un'interfaccia di uscita congestionata in aggiunta ai comandi elencati in questo documento.
Quando si verifica una congestione o un sovrabbonamento a intervalli molto brevi (un micro-burst), sono necessarie ulteriori informazioni per ottenere una descrizione accurata degli effetti del sovrabbonamento sullo switch.
Gli switch Cisco Nexus serie 9000 dotati di Cisco Cloud Scale ASIC possono monitorare il traffico per rilevare micro-burst che possono causare una congestione temporanea della rete e perdita di traffico nell'ambiente. Per ulteriori informazioni sui micro-burst e su come configurare questa funzione, consultare i documenti mostrati di seguito:
Revisione | Data di pubblicazione | Commenti |
---|---|---|
6.0 |
09-Nov-2023 |
Update |
5.0 |
04-Oct-2023 |
Certificazione |
3.0 |
21-Jan-2022 |
Aggiungere la sezione "Fasi successive" al documento. |
2.0 |
03-Oct-2021 |
Sezione Aggiornamento hardware applicabile per includere nuovo hardware. |
1.0 |
31-Aug-2021 |
Versione iniziale |