O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve o enfileiramento e o buffer nos switches Cisco Nexus 9000 Series equipados com um Cisco Scale ASIC que executa o software NX-OS.
A Cisco recomenda que você compreenda os conceitos básicos de switching Ethernet em redes de meios compartilhados e a necessidade de enfileiramento/buffer nessas redes. A Cisco também recomenda que você compreenda os conceitos básicos de Qualidade de Serviço (QoS) e colocação em buffer nos switches Cisco Nexus. Para obter mais informações, consulte a documentação aqui:
As informações neste documento são baseadas nos switches Cisco Nexus 9000 Series com o ASIC Cloud Scale executando o software NX-OS versão 9.3(8).
O procedimento abordado neste documento é aplicável somente ao hardware mostrado aqui.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Este documento descreve a mecânica por trás do enfileiramento e do armazenamento em buffer nos switches Cisco Nexus 9000 Series equipados com um Cisco Cloud Scale ASIC (Application-Specific Integrated Circuit) executando o software NX-OS. Este documento também descreve sintomas de excesso de assinaturas de porta nesta plataforma, como contadores de interface de descarte de saída diferente de zero e syslogsque indicam que os limites de buffer foram excedidos.
Os switches Cisco Nexus 9000 Series com o Cisco Cloud Scale ASIC implementam uma arquitetura de buffer de saída de "memória compartilhada". Um ASIC é dividido em uma ou mais "fatias". Cada fatia tem seu próprio buffer e somente as portas dentro dessa fatia podem usar esse buffer. Fisicamente, cada fatia é dividida em "células", que representam porções do buffer. As fatias são particionadas em "grupos de pools". Um determinado número de células é alocado para cada grupo de pool e não são compartilhadas entre grupos de pool separados. Cada grupo de pool tem um ou mais "pools", que representam uma classe de serviço (CoS) para tráfego unicast ou multicast. Isso ajuda cada grupo de pool a garantir recursos de buffer para os tipos de tráfego que o grupo de pool serve.
A imagem aqui demonstra visualmente como vários modelos do Cisco Cloud Scale ASIC são divididos em fatias. A imagem também demonstra como cada fatia recebe uma certa quantidade de buffer através das células.
Cada modelo do switch Nexus 9000 Series e da placa de linha Nexus 9500 tem um número diferente de ASICs do Cisco Cloud Scale no interior, bem como um layout diferente que determina quais portas do painel frontal se conectam a qual ASIC. Dois exemplos que usam a placa de linha N9K-X9736C-FX e o switch N9K-C9336C-FX2 são mostrados nas imagens aqui.
A placa de linha N9K-C9736C-FX tem 4 ASICs Cisco Cloud Scale LS1800FX com uma fatia por ASIC. Internamente, cada ASIC é chamado de "unidade". Cada fatia é chamada de "instância" e recebe um número inteiro de base zero que identifica exclusivamente essa fatia no chassi. Isso resulta nas permutações mostradas aqui:
O switch N9K-C9336C-FX2 tem um Cisco Cloud Scale LS3600FX2 ASIC com duas fatias por ASIC. Internamente, cada ASIC é chamado de "unidade". Cada fatia é chamada de "instância" e recebe um número inteiro de base zero que identifica exclusivamente essa fatia no chassi. Isso resulta nas permutações mostradas aqui:
Cada placa de linha e switch tem um layout diferente e resulta em números de ocorrência diferentes. Para projetar sua rede em torno de fluxos de tráfego com uso intenso de largura de banda, você precisa entender o layout do switch ou da placa de linha com o qual deseja trabalhar. O comando show interface hardware-mappings pode ser usado para correlacionar cada porta do painel frontal a uma unidade (ASIC) e número de fatia. Um exemplo disso é mostrado aqui, onde a interface Ethernet2/16 de um switch Nexus 9504 com uma placa de linha N9K-X9736C-FX inserida no slot 2 do chassi é mapeada para a Unidade 1, Fatia 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
Ao interpretar o syslog, o ID da instância é calculado com base na ordem de combinação de unidade contígua e fatia. Por exemplo, se um módulo Nexus 9500 ou um Nexus 9300 TOR (Top-of-Rack) tiver duas unidades (ASICs) e duas fatias por unidade, as IDs de instância poderão ser as seguintes:
Se um módulo tiver uma unidade e quatro fatias, as IDs de instância poderão ser:
As interfaces conectadas a uma rede Ethernet só são capazes de transmitir um único pacote por vez. Quando dois pacotes precisam sair de uma interface Ethernet ao mesmo tempo, a interface Ethernet transmite um pacote enquanto armazena o outro pacote em buffer. Uma vez que o primeiro pacote é transmitido, a interface Ethernet transmite o segundo pacote do buffer. Quando a soma total do tráfego que precisa sair, uma interface excede a largura de banda da interface, a interface é considerada como excesso de assinaturas. Por exemplo, se um total de 15 Gbps de tráfego entrar instantaneamente no switch e precisar sair de uma interface de 10 Gbps, a interface de 10 Gbps terá excesso de assinaturas porque não poderá transmitir 15 Gbps de tráfego de cada vez.
Um switch Cisco Nexus 9000 Series com um ASIC de escala de nuvem lida com essa contenção de recursos armazenando o tráfego dentro dos buffers da fatia do ASIC associada à interface de saída. Se a soma total do tráfego que precisa sair de uma interface exceder a largura de banda da interface por um longo período de tempo, os buffers da fatia ASIC começarão a ser preenchidos com pacotes que precisam sair da interface.
Quando os buffers da fatia ASIC atingem 90% de utilização, o switch gera um syslog semelhante ao mostrado aqui:
%TAHUSD-SLOT2-4-BUFFER_THRESHOLD_EXCEEDED: Module 2 Instance 0 Pool-group buffer 90 percent threshold is exceeded!
Quando os buffers da fatia ASIC ficam completamente cheios, o switch descarta qualquer tráfego adicional que precise sair da interface até que o espaço nos buffers fique livre. Quando o switch descarta esse tráfego, ele incrementa o contador de Descartes de Saída na interface de saída.
O syslog gerado e o contador Output Discards diferente de zero são sintomas de uma interface com excesso de assinaturas. Cada sintoma é explorado em mais detalhes nas subseções aqui.
Um exemplo do syslog BUFFER_THRESHOLD_EXCEEDED é mostrado aqui.
%TAHUSD-SLOTX-4-BUFFER_THRESHOLD_EXCEEDED: Module X Instance Y Pool-group buffer Z percent threshold is exceeded!
Esse syslog contém três informações principais:
O contador de interface Output Discards indica o número de pacotes que foram descartados e que devem ter saído da interface, mas não puderam devido ao fato de o buffer de fatia do ASIC estar cheio e não poder aceitar novos pacotes. O contador Output Discards é visível na saída dos erros show interface e show interface counters, como mostrado aqui.
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
Considere um cenário em que o tráfego entre dois geradores de tráfego IXIA atravesse um switch Nexus 9504 com duas placas de linha N9K-X9736C-FX inseridas nos slots 1 e 2 do chassi. 100 Gbps de tráfego entram no switch através da interface Ethernet1/1 de 100 Gbps e precisam sair da interface Ethernet2/2 de 40 Gbps. Portanto, a Ethernet2/2 tem excesso de assinaturas. Uma topologia desse cenário é mostrada aqui.
Como o ASIC de escala de nuvem do Nexus 9000 usa uma arquitetura de buffer de saída de memória compartilhada, você deve verificar o buffer da interface de saída Ethernet2/2 para ver o congestionamento. Neste exemplo, a placa de linha inserida no slot 2 é a placa de linha de saída, portanto você deve usar o comando attach module 2 antes de visualizar o buffer de hardware interno com o comando show hardware internal tah buffer counters. Observe o contador de "quedas de ocupação" diferente de zero para o grupo de pool de Unidade 0, Fatia 0 e pools associados, que indicam o número de pacotes descartados porque o buffer do grupo de pool está totalmente ocupado.
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
Cada unidade ASIC/tupla de fatia é representada por meio de uma única identificada chamada "instância". A saída do comando show hardware internal buffer info pkt-stats exibe informações detalhadas sobre o grupo de pool congestionado (abreviado como "PG") para cada instância. O comando também mostra o número histórico máximo/máximo de células no buffer que foram usadas. Finalmente, o comando mostra um instantâneo instantâneo dos identificadores de porta ASIC de escala de nuvem das portas com tráfego que é colocado em buffer. Um exemplo desse comando é mostrado aqui.
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 |
Consulte também a variação de pico do comando. Use esse comando para associar o syslog a um pico potencial em um grupo de pool, pool ou porta específico.
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
O comando show interface hardware-mappings pode ser usado para converter o identificador de porta ASIC de escala de nuvem em uma porta de painel frontal. No exemplo acima mencionado, a porta 12 do ASIC (representada pela coluna SPort na saída de show interface hardware-mappings) associada à Unidade 0 do ASIC na Fatia/Instância 0 tem 59.988 células ocupadas de 416 bytes cada. Um exemplo do comando show interface hardware-mappings é mostrado aqui, que mapeia essa interface para a porta Ethernet2/2 do painel frontal.
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
Podemos correlacionar ainda mais o excesso de assinaturas da interface Ethernet2/2 com quedas de enfileiramento de QoS com o comando show queuing interface. Um exemplo disso é mostrado abaixo.
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
Finalmente, você pode verificar se a interface Ethernet2/2 de saída tem um contador de descarte de saída diferente de zero com o comando show interface. Um exemplo disso é mostrado abaixo.
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 você observar descartes de saída em um switch Nexus 9000 Series com um ASIC de escala de nuvem, poderá resolver o problema com um ou mais dos seguintes métodos:
Esta seção do documento contém informações adicionais sobre as próximas etapas a serem executadas quando você encontrar o syslog BUFFER_THRESHOLD_EXCEEDED, cenários de congestionamento/excesso de assinaturas da rede e contadores de interface de descarte de saída de incremento.
Você pode modificar o intervalo de sondagem de status do buffer do sistema, que controla a frequência com que o sistema sonda a utilização atual de buffers de fatia ASIC. Isso é feito com o comando de configuração global hardware profile buffer info poll-interval. O valor de configuração padrão é 5.000 milissegundos. Essa configuração pode ser modificada globalmente ou por módulo. Um exemplo desse comando de configuração é mostrado aqui, onde ele é modificado para um valor de 1.000 milissegundos.
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#
Você pode modificar o valor do limite de uso do buffer de saída da porta, que controla quando o sistema gera o syslog BUFFER_THRESHOLD_EXCEEDED indica que a utilização do buffer de fatia do ASIC excedeu o limite configurado. Isso é feito com o comando de configuração global hardware profile buffer info port-threshold. O valor de configuração padrão é 90%. Essa configuração pode ser modificada globalmente ou por módulo. Um exemplo desse comando de configuração é mostrado aqui, onde ele é modificado para um valor de 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#
Você pode modificar o intervalo mínimo entre os syslogs BUFFER_THRESHOLD_EXCEEDED gerados pelo switch. Você também pode desativar o syslog BUFFER_THRESHOLD_EXCEEDED. Isso é feito com o comando de configuração global hardware profile buffer info syslog-interval timer. O valor de configuração padrão é 120 segundos. O syslog pode ser totalmente desativado definindo-se o valor para 0 segundos. Um exemplo desse comando de configuração é mostrado aqui, onde o syslog é totalmente desativado.
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#
Você pode coletar os logs mostrados aqui de um switch afetado por um cenário de congestionamento de rede para identificar uma interface de saída congestionada, além dos comandos listados neste documento.
Quando ocorre congestionamento ou excesso de assinaturas em intervalos muito curtos (um microburst), são necessárias informações adicionais para obter uma descrição precisa de como o excesso de assinaturas afeta o switch.
Os switches Cisco Nexus 9000 Series equipados com o Cisco Cloud Scale ASIC podem monitorar o tráfego em busca de microintermitências que podem causar congestionamento temporário da rede e perda de tráfego no seu ambiente. Para obter mais informações sobre microintermitências e como configurar esse recurso, consulte os documentos mostrados aqui:
Revisão | Data de publicação | Comentários |
---|---|---|
6.0 |
09-Nov-2023 |
Atualizar |
5.0 |
04-Oct-2023 |
Recertificação |
3.0 |
21-Jan-2022 |
Adicione a seção "Próximas etapas" ao documento. |
2.0 |
03-Oct-2021 |
Atualize a seção Hardware Aplicável para incluir o novo hardware. |
1.0 |
31-Aug-2021 |
Versão inicial |