Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Quels sont les abandons de sortie

Types d'encombrement

Congestion à faible débit

Valider l'encombrement tampon

Modifier les tampons pour résoudre les pertes de sortie

Multiplicateur SoftMax

Modification du tampon par file d'attente

Méthodes alternatives de gestion de l'encombrement

Analyser les pertes de sortie avec Wireshark

Afficher le taux d'E/S

Affichage du débit d'E/S en millisecondes

Introduction

Ce document décrit comment dépanner les pertes de sortie sur les plates-formes de la gamme Catalyst 9000.

Conditions préalables

Exigences

Pour dépanner la qualité de service (QoS) sur les plates-formes de la gamme Catalyst 9000, vous devez comprendre :

- Concepts QoS standard

- Interface de ligne de commande (CLI) QoS modulaire

Composants utilisés

Les informations de ce document sont basées sur la version matérielle et logicielle, mais la méthodologie et la majorité des commandes peuvent être appliquées à d'autres commutateurs de la gamme Catalyst 9000 sur d'autres codes :

- Cisco Catalyst 9300

- Cisco IOS® XE 16.12.3

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Remarque : consultez le guide de configuration approprié pour connaître les commandes utilisées afin d'activer ces fonctionnalités sur d'autres plates-formes Cisco.

Informations générales

Pour une explication détaillée de la qualité de service sur les plates-formes de la gamme Catalyst 9000, qui inclut les configurations QoS par défaut, la structure de la file d'attente et des explications sur la mémoire tampon, consultez le Livre blanc sur la qualité de service et la mise en file d'attente Catalyst 9000. Consultez le guide de version recommandé pour vous assurer que vous disposez des derniers logiciels recommandés pour votre plate-forme. Ces recommandations garantissent que votre logiciel est pris en charge et permettent d'éviter les bogues connus dans les codes plus anciens. Versions recommandées pour les Catalyst

Quels sont les abandons de sortie

La connaissance de l'allocation de mémoire tampon peut vous aider à comprendre comment l'encombrement de la mémoire tampon entraîne des pertes de sortie. L’encombrement se produit lorsque l’interface de destination a un nombre de paquets qui dépasse son débit de sortie. Ces paquets doivent être stockés dans la mémoire tampon jusqu'à ce qu'ils puissent être transmis. Considérez que ces commutateurs ont au plus 36 Mo de mémoire tampon par ASIC, qui est ensuite partagée entre tous les ports sur l'ASIC. Alors qu'une interface de sortie peut vider cette mémoire tampon à la vitesse de la ligne, tout scénario entraînant la mise en mémoire tampon de paquets à une vitesse supérieure peut entraîner un encombrement. L'encombrement peut se produire même si cette rafale de trafic ne dure qu'une fraction de seconde, et peut provoquer une latence dans le trafic, ou des pertes de sortie si cette mémoire tampon se remplit complètement.

Remarque : le compteur d'abandon de sortie affiché dans show interface est présenté en octets par défaut. Dans les versions 16.9.3 et ultérieures, ces compteurs sont des paquets par défaut.

Types d'encombrement

Comme l'illustre l'image 1, il existe deux types d'encombrement.

Image 1. Types d'encombrement

Les deux types d'encombrement illustrés dans l'image 1 sont les suivants :

- Plusieurs à un : lorsque plusieurs ports sources envoient du trafic vers une seule destination en même temps, le port de destination peut être encombré par le volume de trafic qu'il a reçu de plusieurs sources.

- Incompatibilité de vitesse : lorsqu'un port à vitesse élevée transmet à un port à vitesse plus faible (par exemple 10 Gbit/s à 1 Gbit/s), les paquets doivent mettre du temps à se décharger du port de sortie, ce qui peut entraîner un retard et/ou des pertes de paquets.

Congestion à faible débit

Les salves de trafic peuvent entraîner des pertes de sortie même lorsque le débit de sortie de l'interface est considérablement inférieur à la capacité maximale de l'interface. Par défaut, les débits de sortie dans la commande show interface sont moyennés sur cinq minutes, ce qui n'est pas adéquat pour capturer des rafales de courte durée. Il est préférable de les calculer en moyenne sur 30 secondes, bien que, même dans ce scénario, une rafale de trafic pendant des millisecondes puisse entraîner des pertes de sortie qui n'entraînent pas l'augmentation du débit moyen sur 30 secondes. Ce document peut être utilisé pour dépanner tout autre type d'encombrement que vous voyez sur votre commutateur de la gamme Catalyst 9000.

Valider l'encombrement tampon

Deux commandes permettent de valider l'encombrement de la mémoire tampon. La première commande est show platform hardware fed switch active qos queue config interface <interface>. Cette commande vous permet d'afficher l'allocation de mémoire tampon actuelle sur le port, comme illustré dans l'image 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

Image 2.  Allocation de tampon

Vous voulez spécifiquement regarder la colonne Hardmax et Softmax qui montre le nombre de mémoires tampon que les files d'attente ont disponibles. Pour plus d'informations sur ce que sont ces tampons et comment ils sont alloués par défaut, consultez le Livre blanc sur la QoS et la mise en file d'attente de Catalyst 9000.

La deuxième commande est show platform hardware fed switch active qos queue stats interface <interface>. Cette commande vous permet d'afficher des statistiques par file d'attente sur une interface, ce qui inclut le nombre d'octets mis en file d'attente dans les tampons et le nombre d'octets abandonnés en raison du manque de tampons disponibles.

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

Image 3. Statistiques de tampon de file d'attente avec pertes

Comme l'illustre l'image 3, la file d'attente 0 et la file d'attente 1 ont toutes deux des octets en file d'attente, mais c'est la file d'attente 1 qui subit des abandons dans la colonne Drop-TH2. Ces informations indiquent que le trafic de la file d'attente 0 n'a pas été affecté par cet encombrement et que la cause de cet encombrement est spécifiquement le trafic de la file d'attente 1.

Modifier les tampons pour résoudre les pertes de sortie

Multiplicateur SoftMax

Pour augmenter le nombre de tampons que chaque file d'attente peut demander à partir du pool partagé, augmentez le seuil SoftMax avec la configuration qos queue-softmax-multiplicateur <100 - 1200>. La valeur la plus élevée est 1200, et augmente d'un multiple de 12, la capacité d'une file d'attente de port unique à absorber des micro-salves. Cette commande augmente les seuils de file d'attente de port afin que la file d'attente de port puisse consommer des unités de mémoire tampon supplémentaires du pool partagé. Comme l'illustre l'image 4, la configuration et l'allocation accrue de mémoire tampon.

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

Image 4. Configuration de la file d'attente avec SoftMax Multiplier de 1200

Il s'agit d'une configuration courante utilisée comme méthode rapide pour résoudre les pertes de sortie. Dans l'image 4, cette configuration s'applique à toutes les files d'attente non prioritaires sur toutes les interfaces. L'allocation de mémoire tampon elle-même suppose que les micro-salves n'ont pas lieu sur tous les ports du commutateur en même temps. Si des micro-salves se produisent à des moments aléatoires, la mémoire tampon partagée peut dédier des unités de mémoire tampon supplémentaires pour les absorber.

Modification du tampon par file d'attente

La modification de la mémoire tampon par file d'attente peut être utilisée dans les scénarios où vous ne pouvez pas utiliser le multiplicateur SoftMax, ou dans les scénarios où vous essayez d'affiner les mémoires tampons pour qu'elles s'adaptent à un profil de trafic. Pour modifier l'allocation de tampon de file d'attente, le commutateur par interface, vous devez utiliser policy-maps.  Dans la plupart des cas, vous modifiez la carte de stratégie actuelle d'une interface et changez les tampons par classe.

Dans cet exemple, l'interface GigabitEthernet1/0/48 a subi des pertes de sortie. Comme l'illustre l'image 5, carte de stratégie de sortie appliquée à cette 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

Image 5. Exemple de carte de stratégie

Cette carte-politique a 5 cartes-classes, ce qui donne 5 files d'attente de sortie au total sur l'interface. Chaque classe dispose d'un nombre par défaut de mémoires tampon qui lui sont allouées en fonction de son niveau de priorité.

L'image 6 affiche les allocations de mémoire tampon actuelles.

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

Image 6. Configuration du tampon de file d'attente avec l'exemple de stratégie

Comme cette interface a subi des pertes de sortie, regardez les statistiques de mise en file d'attente de l'interface pour voir où se trouve l'encombrement.

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

Image 7. Statistiques de tampon de file d'attente avec abandons avec exemple de règle

L'image 7 montre que la file d'attente 3 a plus de trafic mis en file d'attente que toute autre file d'attente, et c'est également la seule qui a connu des pertes de sortie. Puisque le numéro de file d'attente commence à 0, la file d'attente 3 est mappée à la quatrième class-map, class Data.

Pour réduire les pertes sur cette file d'attente, allouez plus de tampons à la file d'attente 3. Pour modifier cette allocation de mémoire tampon, utilisez la configuration queue-buffers ratio <0-100> dans le policy-map. S'il est configuré sur chaque classe de la stratégie, il doit ajouter jusqu'à 100. Si vous ne configurez qu'une seule classe avec cette commande, le système tente de soustraire uniformément les tampons des autres files d'attente.

Dans l'image 8, la classe Data a été configurée avec un rapport de tampons de file d'attente de 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

Image 8. Exemple de mappage de stratégie avec tampons de file d'attente modifiés

Dans l'image 9, vous pouvez voir que la classe Data possède maintenant 40 % des tampons d'interface, soit 800 tampons au total.

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

Image 9. Configuration de tampon de file d'attente avec exemple de stratégie mis à jour

Les autres files d'attente ont moins de tampons Softmax. Il est important d'effectuer ces modifications de mémoire tampon par petits incréments pour s'assurer que les modifications n'entraînent pas de pertes de sortie sur les autres files d'attente.

Une fois cette modification effectuée, vérifiez l'état de la file d'attente et voyez si les abandons s'incrémentent encore sur cette file d'attente ou sur toute autre file d'attente. Si les abandons continuent, modifiez la configuration de la mémoire tampon de la file d'attente jusqu'à ce que les abandons de sortie soient résolus.

Méthodes alternatives de gestion de l'encombrement

La QoS est principalement une méthode de hiérarchisation du trafic, et elle ne constitue pas une solution pour chaque scénario de perte de sortie. Dans certains cas, une modification des tampons de file d'attente ne suffit pas à résoudre toutes les pertes de sortie. Dans ces scénarios, vous pouvez gérer la congestion de plusieurs autres manières :

- Réduire le taux de sursouscription.

Cela inclut des méthodes qui augmentent votre bande passante de sortie, telles que les canaux de port ou le protocole ECMP (Equal Cost Multipath), mais qui peuvent également nécessiter des configurations plus complexes, telles que l'ingénierie du trafic.

- Utiliser un ordonnanceur de file d'attente pour hiérarchiser le trafic.

Bien qu'un planificateur de file d'attente n'arrête pas l'encombrement, il protège votre trafic important de l'impact de l'encombrement

- Utilisez des algorithmes de gestion de congestion tels que WRED (Weighted Random Early Discard) ou WTD (Weighted Tail Drop) pour abandonner une partie du trafic plus tôt.

- Contrôlez le trafic en entrée pour réduire le trafic en sortie.

Analyser les pertes de sortie avec Wireshark

Wireshark est un outil utile pour identifier les salves de trafic qui provoquent l’encombrement et les pertes de mémoire tampon.  Si vous appliquez la fonctionnalité SPAN à une interface dans la direction de sortie alors qu'elle subit des pertes, Wireshark peut représenter graphiquement le taux de sortie pour voir quand et quel trafic a déclenché les pertes. Ceci est particulièrement utile lors de l'identification de pertes de sortie dans des scénarios à faible débit.

Afficher le taux d'E/S

Une fois que vous avez ouvert votre capture SPAN avec Wireshark, sélectionnez Statistics, puis I/O Graph, comme illustré dans l'image 10.

Image 10. Sélectionnez le graphique E/S

Une fois cette option sélectionnée, Wireshark génère un graphique du trafic en bits par seconde. L'image 11 montre un exemple de graphique pour une interface pendant qu'elle a subi des pertes de sortie.

Image 11. Graphique E/S Bits/milliseconde

Le graphique de l’image 11 indique que le débit maximal de l’interface dépasse à peine 80 Mbits/s. La vue graphique par défaut n'est pas suffisamment granulaire pour identifier les petites rafales de trafic qui provoquent des abandons de paquets. Il s'agit d'une moyenne du débit de trafic par seconde. Pour comprendre comment ce débit peut entraîner un encombrement de la mémoire tampon, considérez le débit sur une échelle de millisecondes.

Une interface Gigabit peut transférer 1 000 000 000 bits par seconde. Une fois convertie en millisecondes, cette valeur est égale à 1 000 000 (ou 10^6) bits par milliseconde.

Lorsque le débit de l'interface dépasse la vitesse de transfert de l'interface, les commutateurs doivent mettre ces paquets en mémoire tampon, ce qui entraîne un encombrement et des pertes de sortie.

Affichage du débit d'E/S en millisecondes

Wireshark permet à l’utilisateur de représenter le débit d’E/S sous forme de bits par milliseconde. Pour ce faire, réduisez l'intervalle de 1 sec à 1 ms, puis cliquez sur Reset pour afficher correctement le graphique. Cette étape est illustrée dans l'image 12.

Image 12. Réduisez l'intervalle à 1 ms et réinitialisez le graphique

Le graphique mis à jour affiche plus précisément le taux d'E/S réel de l'interface. Lorsque le débit atteint ou dépasse 10^6 bits par milliseconde, le commutateur subit un encombrement ou des pertes de sortie.  L'image 13 présente le graphique d'E/S mis à jour pour une interface qui a subi des pertes de sortie.

Image 13. Graphique E/S Bits/milliseconde

L'image 13 montre que plusieurs pics de trafic atteignent ou dépassent le seuil de 10^6. Le trafic serait soumis à la mise en mémoire tampon et abandonné s'il dépasse la taille de la mémoire tampon de sortie.

Remarque : si la destination SPAN est connectée par une interface 1 Gbit/s, le débit d'E/S dans Wireshark ne peut pas dépasser ce débit de 10^6 bits par milliseconde, quel que soit le débit de l'interface source. L’interface de destination SPAN met ces paquets en mémoire tampon ou les supprime. Il est courant de voir le plateau du graphique d'E/S à ce débit maximal ou de présenter un débit de trafic moyen qui semble aller plus haut.