Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Achtergrondinformatie

Wat zijn Output Drops?

Soorten congestie

Congestie met lage doorvoersnelheid

Buffercongestie valideren

Buffers wijzigen om uitvoerdruppels op te lossen

SoftMax multiplier

Wijziging van buffers per wachtrij

Alternatieve methoden voor het beheer van congestie

Output Drops analyseren met Wireshark

Bekijk het I/O-tarief

Bekijk het I/O-tarief in Millisecond

Inleiding

Dit document beschrijft hoe u uitvoerdruppels op de Catalyst 9000 Series platforms kunt oplossen.

Voorwaarden

Vereisten

U moet begrijpen dat u Quality of Service (QoS) op de Catalyst 9000 Series platforms kunt oplossen:

- Standaard QoS-concepten

- Modulaire QoS Command Line Interface (CLI)

Gebruikte componenten

De informatie in dit document is gebaseerd op deze hardware- en softwareversie, maar de methodologie en de meeste opdrachten kunnen worden toegepast op andere Catalyst 9000 Series switches op andere code:

- Cisco Catalyst 9300 switch

- Cisco IOS XE 16.12.3

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

Opmerking: raadpleeg de juiste configuratiehandleiding voor de opdrachten die worden gebruikt om deze functies op andere Cisco-platforms in te schakelen.

Achtergrondinformatie

Voor een diepgaande uitleg van QoS op de Catalyst 9000 Series platforms, die standaard QoS-configuraties, wachtrijstructuur en buffertoelichtingen omvat, raadpleegt u Catalyst 9000 QoS en Whitepaper over wachtrijen. Bekijk de aanbevolen release gids om er zeker van te zijn dat u de nieuwste aanbevolen software voor uw platform gebruikt. Deze aanbevelingen zorgen ervoor dat uw software wordt ondersteund en helpen bekende bugs in oudere codes te voorkomen. Aanbevolen releases voor Catalyst

Wat zijn Output Drops?

Kennis van buffertoewijzing kan u helpen te begrijpen hoe buffercongestie resulteert in outputdalingen. Congestie treedt op wanneer de doelinterface een aantal pakketten heeft die de uitvoersnelheid overschrijden. Deze pakketten moeten in de buffer worden opgeslagen tot zij kunnen worden overgebracht. Bedenk dat deze switches ten hoogste 36 MB buffers per ASIC hebben, wat dan wordt gedeeld tussen alle poorten op de ASIC. Terwijl een uitgaande interface in staat kan zijn om die buffer te legen op lijnsnelheid, kan elk scenario dat ervoor zorgt dat pakketten worden gebufferd op een hoger tempo congestie veroorzaken. Er kan congestie optreden, zelfs als dat verkeer maar een fractie van een seconde duurt, en dit kan latentie in het verkeer veroorzaken, of de output daalt als die buffer volledig gevuld zou worden.

Opmerking: de uitvoerdrop-teller die in de show-interface wordt weergegeven wordt standaard in bytes weergegeven. In release 16.1.1 en hoger kunt u dit wijzigen in pakketten met de globale configuratie qos wachtrij-stats-frame-telling

Soorten congestie

Zoals in afbeelding 1 wordt getoond, zijn er twee soorten congestie.

Afbeelding 1. Soorten congestie

De twee soorten congestie die in afbeelding 1 worden getoond, zijn:

- Veel naar één: wanneer meerdere bronpoorten tegelijk verkeer naar één bestemming verzenden, kan de bestemmingshaven verstopt raken met de hoeveelheid verkeer die het van meerdere bronnen heeft ontvangen.

- Snelheidsfout: wanneer een poort met een hogere snelheid wordt doorgegeven aan een poort met een lagere snelheid (bijvoorbeeld 10 Gbps tot 1 Gbps), moet het voor pakketten even duren voordat de uitgangspoort is leeggelopen, wat kan leiden tot vertraging en/of pakketdalingen.

Congestie met lage doorvoersnelheid

De verkeersuitbarstingen kunnen outputdalingen veroorzaken zelfs wanneer het tarief van de interfaceoutput beduidend lager is dan de maximuminterfacecapaciteit. Door gebrek, worden de outputtarieven in het bevel van de showinterface gemiddeld over vijf minuten, die niet geschikt is om enige kortstondige uitbarstingen te vangen. Het is best om hen over 30 seconden te gemiddelde, alhoewel zelfs in dit scenario een uitbarsting van verkeer voor milliseconden in outputdalingen zou kunnen resulteren die niet de 30 tweede gemiddelde tarief om veroorzaken te stijgen. Dit document kan worden gebruikt om problemen op te lossen met dit andere type congestie dat u op uw Catalyst 9000 Series switch ziet.

Buffercongestie valideren

Er zijn twee opdrachten die worden gebruikt om buffercongestie te valideren. De eerste opdracht is tonen platform hardware gevoede switch actieve qos wachtrij-configuratieinterface <interface>. Met deze opdracht kunt u de huidige buffertoewijzing op de poort zien, zoals in afbeelding 2.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:2 - 1800

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

----- --------  --------  --------  --------  ---------

0   1  6   200   7   800  19   475   0     0   3  2400

1   1  5     0   8  1200  19   712   8   300   3  2400

2   1  5     0   6     0   0     0   0     0   3  2400

3   1  5     0   6     0   0     0   0     0   3  2400

4   1  5     0   6     0   0     0   0     0   3  2400

5   1  5     0   6     0   0     0   0     0   3  2400

6   1  5     0   6     0   0     0   0     0   3  2400

7   1  5     0   6     0   0     0   0     0   3  2400

Afbeelding 2.  Toewijzing van wachtrij-buffer

U wilt specifiek kijken naar de kolom Hardmax en Softmax die het aantal buffers tonen dat de wachtrijen beschikbaar hebben. Zie Catalyst 9000 QoS en wachtrijen voor informatie over wat deze buffers zijn en hoe ze standaard worden toegewezen.

De tweede opdracht is tonen platform hardware gevoede switch actieve qos wachtrij stats interface <interface>. Met deze opdracht kunt u per wachtrij statistieken zien van een interface, die aangeeft hoeveel bytes in de buffers zijn opgezocht en hoeveel bytes zijn gevallen bij gebrek aan beschikbare buffers.

9300#show platform hardware fed switch active qos queue stats interface Gig 1/0/1

DATA Port:0 Enqueue Counters

---------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0                    0            384251797                    0

1       0                    0                    0         488393930284                    0

2       0                    0                    0                    0                    0

3       0                    0                    0                    0                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0                    0

DATA Port:0 Drop Counters

-------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0            192308101                    0                    0                    0

2                    0                    0                    0                    0                    0                    0

3                    0                    0                    0                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

Afbeelding 3. Statistieken voor wachtrij-buffers met Drops

Zoals in afbeelding 3 wachtrij 0 en wachtrij 1 wordt getoond, zijn beide bytes onderzocht, maar het is wachtrij 1 die in de kolom Drop-TH2 een daling ervaart. Deze informatie geeft aan dat Queue 0-verkeer niet is beïnvloed door deze congestie en dat de oorzaak van de congestie specifiek Queue 1-verkeer is.

Buffers wijzigen om uitvoerdruppels op te lossen

SoftMax multiplier

Om het aantal buffers te verhogen dat elke wachtrij kan aanvragen bij de gedeelde pool, verhoogt u de SoftMax-drempel met de configuratie qos-wachtrij-softmax-multiplier <100 - 1200>. De hoogste waarde is 1200 en verhoogt met een veelvoud van 12 de mogelijkheid van één poortwachtrij om microbursts te absorberen. Dit bevel verhoogt de drempels van de havenrij zodat de havenrij extra buffereenheden van de gedeelde pool kan verbruiken. Zoals getoond in Afbeelding 4, configuratie en de verhoogde buffertoewijzing.

9300(config)#qos queue-softmax-multiplier 1200

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 14400

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

----- --------  --------  --------  --------  ---------

0   1  6   200   9  9600   2   600   0     0   1 15000

1   1  5     0  10 14400   2   900   1   450   1 15000

2   1  5     0   6     0   0     0   0     0   1 15000

3   1  5     0   6     0   0     0   0     0   1 15000

4   1  5     0   6     0   0     0   0     0   1 15000

5   1  5     0   6     0   0     0   0     0   1 15000

6   1  5     0   6     0   0     0   0     0   1 15000

7   1  5     0   6     0   0     0   0     0   1 15000

Afbeelding 4. Queue Config met SoftMax Multiplier van 1200

Dit is een veelvoorkomende configuratie gebruikt als een snelle methode om output druppels op te lossen. In Afbeelding 4, merk op dat deze configuratie van toepassing is op alle niet-prioritaire wachtrijen over alle interfaces. De buffertoewijzing zelf gaat ervan uit dat de microuitbarstingen niet in alle switches tegelijk plaatsvinden. Als micro-uitbarstingen in willekeurige momenten plaatsvinden, kan de gedeelde buffer extra buffereenheden wijden om hen te absorberen.

Wijziging van buffers per wachtrij

Per-Queue bufferwijziging kan worden gebruikt voor scenario's waarbij u de SoftMax-multiplier niet kunt gebruiken of in scenario's waarin u probeert de buffers te verfijnen om een verkeersprofiel te passen. Switch Om de wachtrijbuffertoewijzing per interfacebasis aan te passen, moet u gebruik maken van policy-maps.  In de meeste omstandigheden wijzigt u de huidige policy-map van een interface en wijzigt u de buffers per klassenbasis.

In dit voorbeeld heeft de interface Gigabit Ethernet1/0/48 output druppels ervaren. Zoals in afbeelding 5 wordt getoond, wordt de uitgangspolitiek-map toegepast op deze interface.

policy-map MYPOL

class Voice

priority level 1 percent 20

class Video

priority level 2 percent 10

class Control

bandwidth percent 10

class Data

bandwidth percent 5

class class-default

Afbeelding 5. Voorbeeld van een beleidsanalyse

Deze policy-map heeft 5 class-maps, wat resulteert in 5 totale uitgangen op de interface. Elke klasse heeft een standaardaantal buffers toegewezen aan het op basis van zijn prioriteitsniveau. Afbeelding 6 geeft de huidige buffertoewijzingen weer.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 600

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

----- --------  --------  --------  --------  ---------

0   1  7   100   9   100   0     0   0     0   3   800

1   1  7   100  10   400  19   237   0     0   3   800

2   1  5     0  10   400  19   237   8   100   3   800

3   1  5     0  10   400  19   237   8   100   3   800

4   1  5     0  10   400  19   237   8   100   3   800

5   1  5     0   6     0   0     0   0     0   3   800

6   1  5     0   6     0   0     0   0     0   3   800

7   1  5     0   6     0   0     0   0     0   3   800

Afbeelding 6. Queue Buffer Config met het voorbeeldbeleid

Aangezien deze interface outputdalingen heeft ervaren, bekijk de het vormen statistieken van de interface om te zien waar de congestie is.

9300#show platform hardware fed switch active qos queue stats interface gigabitEthernet 1/0/48

DATA Port:0 Enqueue Counters

---------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0                    0               489094                    0

1       0                    0                    0              4846845                    0

2       0                    0                    0             89498498                    0

3       0                    0                    0          21297827045                    0

4       0                    0                    0             74983184                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0                    0

DATA Port:0 Drop Counters

-------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0                    0                    0                    0                    0

3                    0                    0              3854484                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

Afbeelding 7. Statistieken voor wachtrijen met drop met een voorbeeldbeleid

Afbeelding 7 laat zien dat wachtrij 3 meer verkeer heeft onderzocht dan een andere wachtrij, en het is ook de enige die output druppels heeft ervaren. Aangezien het nummer van de wachtrij op 0 begint, komt wachtrij 3 in kaart met de 4e klasse-map, class Data.

Om de dalingen in deze wachtrij te verzachten, moet u meer buffers toewijzen aan wachtrij 3. Als u deze buffertoewijzing wilt wijzigen, gebruikt u de wachtrij-bufferverhouding <0-100>in de beleidskaart. Indien geconfigureerd op elke klasse in het beleid, moet het optellen tot 100. Als u slechts één klasse met deze opdracht vormt, probeert het systeem buffers gelijkmatig van de andere wachtrijen af te trekken.

In Afbeelding 8 is de gegevensklasse geconfigureerd met wachtrij-buffers ratio 40.

policy-map MYPOL

class Voice

priority level 1 percent 20

class Video

priority level 2 percent 10

class Control

bandwidth percent 10

class Data

bandwidth percent 5

queue-buffers ratio 40

Afbeelding 8. Voorbeeld beleidskaart met gewijzigde wachtrijbuffers

In Afbeelding 9 ziet u dat de gegevensklasse nu 40% van de interfacebuffers heeft, 800 buffers in totaal.

9300#show platform hardware fed switch active qos queue config interface gigabitEthernet 1/0/48

Asic:0 Core:0 DATA Port:47 GPN:48 LinkSpeed:0x1

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 376 - 383

DrainFast:Disabled PortSoftStart:3 - 1200

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd

----- --------  --------  --------  --------  ---------

0   1  7    75   9    75   0     0   0     0   3  1600

1   1  7    75  10   300  19   178   0     0   3  1600

2   1  5     0  10   300  19   178   8    75   3  1600

3   1  5     0   7   800  19   475   8   200   3  1600

4   1  5     0  10   300  19   178   8    75   3  1600

5   1  5     0   6     0   0     0   0     0   3  1600

6   1  5     0   6     0   0     0   0     0   3  1600

7   1  5     0   6     0   0     0   0     0   3  1600

Afbeelding 9. Queue Buffer Config met het bijgewerkte voorbeeldbeleid

Dit zorgt er ook voor dat de andere wachtrijen minder Softmax-buffers hebben. Het is belangrijk om deze bufferveranderingen in kleine stappen aan te brengen om ervoor te zorgen de veranderingen niet in outputdalingen op de andere rijen resulteren.

Als die wijziging is aangebracht, controleer je de wachtrijstats en kijk je of er nog steeds stappen vallen in deze of een andere wachtrij. Als de druppels doorgaan, pas dan de wachtrij-bufferconfiguratie verder aan tot de uitgangsdruppels zijn opgelost.

Alternatieve methoden voor het beheer van congestie

QoS is hoofdzakelijk een methode om verkeer voorrang te geven, en het is geen oplossing voor elk scenario van de outputdaling. Er zijn sommige scenario's waar een wijziging van de wachtrijbuffers niet genoeg is om alle outputdalingen op te lossen. In die scenario's, kunt u congestie op verscheidene andere manieren beheren:

- Verlaag de overtekening ratio

- Dit omvat methoden die uw uitgangsbandbreedte verhogen, zoals poortkanalen of Equal Cost Multipath (ECMP), maar die ook meer betrokken configuraties zoals traffic engineering kunnen vereisen

- Gebruik een wachtrijplanner om prioriteit te geven aan verkeer

- Terwijl een wachtrijplanner congestie niet stopt, beschermt het uw belangrijke verkeer tegen impact door de congestie

- Gebruik algoritmen voor congestiebeheer, zoals Weighted Random Early Discard (WRED) of Weighted Tail Drop (WTD) om eerder verkeer uit te schakelen

- Politie bij het betreden van het plein om het verkeer bij uitgang te beperken

Output Drops analyseren met Wireshark

Wireshark is een nuttig hulpmiddel om uitbarstingen van verkeer te identificeren die buffercongestie en dalingen veroorzaken.  Als u een interface in de uitgangsrichting overspant terwijl het daalt ervaart, kan Wireshark het outputtarief graferen om te zien wanneer en welk verkeer de dalingen veroorzaakte. Dit is vooral nuttig wanneer u uitvoerdalingen in scenario's met lage doorvoersnelheid herkent.

Bekijk het I/O-tarief

Nadat u uw SPAN-opname met Wireshark hebt geopend, selecteert u Statistieken en I/O-grafiek zoals in afbeelding 10 wordt getoond.

Afbeelding 10. Selecteer de I/O-grafiek

Zodra dat is geselecteerd, genereert Wireshark een grafiek van het verkeer in bits per seconde. Afbeelding 11 toont een voorbeeldgrafiek voor een interface terwijl deze de output laat vallen.

Afbeelding 11. I/O-grafische bits/milliseconde

De grafiek van Afbeelding 11 wijst erop dat de interface een maximumproductie had die nauwelijks 80Mbps overschrijdt. De standaardweergave van de grafiek is niet korrelig genoeg om kleine uitbarstingen van verkeer te identificeren die pakketdalingen veroorzaken. Het is een gemiddelde van de verkeerstarieven per seconde. Om te begrijpen hoe dit tarief buffercongestie kon veroorzaken, overweeg de productie op een schaal van milliseconden.

Een Gigabit interface kan 1.000.000.000 bits per seconde voorwaarts sturen. Na conversie naar milliseconden komt dit overeen met 1.000.000 (of 10^6) bits per milliseconde.

Wanneer de interfacesnelheid verder gaat dan de doorstuursnelheid van de interface, moeten de switches deze pakketten bufferen, wat resulteert in stremming en output dalingen.

Bekijk het I/O-tarief in Millisecond

Wireshark staat de gebruiker toe om het I/O Tarief als beetjes per milliseconde te graferen. Om dit te doen, verminder het Interval van 1 sec tot 1 ms, en klik vervolgens op Reset om de grafiek goed te bekijken. Deze stap wordt weergegeven in afbeelding 12.

Afbeelding 12. Interval terugbrengen tot 1 ms en Grafiek opnieuw instellen

De bijgewerkte grafiek toont nauwkeuriger het ware I/O tarief van de interface. Als de snelheid 10^6 bits per milliseconde bedraagt, ervaart de switch congestie of uitvoerdalingen.  Afbeelding 13 toont de bijgewerkte I/O-grafiek voor een interface die uitvoerdalingen ervaart.

Afbeelding 13 I/O-grafische bits/milliseconde

Afbeelding 13 laat zien dat er meerdere verkeerspieken zijn die de 10^6 drempel overschrijden of overschrijden. Het verkeer zou onderworpen zijn aan buffering en worden gelaten vallen als het onze uitgangsbuffergrootte overschrijdt.

Opmerking: als de SPAN-bestemming is verbonden met een 1 Gbps interface, kan de I/O-snelheid in Wireshark niet hoger zijn dan die 10^6 bits per milliseconde-snelheid, ongeacht wat de broninterfacesnelheid is. De SPAN-doelinterface buffert of laat die pakketten vallen. Het is gebruikelijk om het I/O grafiekplateau bij die maximale doorvoersnelheid te zien of een gemiddelde verkeerssnelheid te presenteren die hoger lijkt te gaan.