Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Vérifier

Identifier l'interface affectée

Identifier les interfaces entrantes et sortantes

Allocation de mémoire tampon

Dépannage

Modifier l'allocation tampon

Modifier les tampons par file d'attente

Analyser les pertes de sortie avec Wireshark

Autres approches

Informations connexes

Introduction

Ce document décrit comment dépanner les pertes de sortie sur les interfaces haut débit sur les plates-formes de la gamme Catalyst 9000 basées sur ASIC UADP.

Conditions préalables

Exigences

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- Concepts QoS standard

- Interface de ligne de commande (CLI) QoS modulaire

- Wireshark

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Types ASIC UADP 2.0 et UADP 3.0

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Logiciel Cisco IOS® XE 16.X ou 17.X

Remarque : Consultez le guide de configuration approprié pour connaître les commandes utilisées afin d’activer ces fonctionnalités sur d’autres plateformes Cisco.

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.

Informations générales

Les pertes de sortie sur les interfaces haut débit sont un problème qui peut se produire dans n'importe quel environnement réseau, en particulier lorsqu'il s'agit d'interfaces qui prennent en charge des débits de transfert de données de 10 Gbit/s ou plus. Les abandons de sortie se produisent lorsque des paquets sont abandonnés par l'interface avant qu'ils ne puissent être transmis sur le réseau.

Il est souvent mal compris comment l'utilisation de l'interface est interprétée lorsque des pertes de sortie se produisent à de faibles niveaux d'utilisation :

- Lorsque trop de trafic est envoyé à partir d'une seule interface, les tampons de cette interface peuvent être saturés et des pertes de sortie peuvent se produire. Une interface avec trop peu de tampons peut également augmenter la probabilité de pertes de sortie.

- Les pertes de sortie peuvent également être causées par une non-concordance entre la vitesse de l'interface et la vitesse du périphérique connecté. Par exemple, si une interface 10 Gbits/s est connectée à un périphérique qui prend uniquement en charge un débit de transfert de données de 1 Gbits/s, l'interface peut abandonner des paquets si elle ne parvient pas à ralentir le débit de données pour qu'il corresponde aux capacités du périphérique.

Cependant, dans la grande majorité des cas, les pertes de sortie sont causées par le trafic en microrafale qui a épuisé les tampons de port :

- Une microrafale fait référence à un phénomène dans lequel une grande quantité de trafic est envoyée dans un laps de temps très court, généralement il ne dure que quelques millisecondes et dépasse la bande passante disponible de l'interface.

- En cas de microrafale, les périphériques réseau doivent mettre le trafic en mémoire tampon jusqu’à ce qu’il puisse être transmis sur le réseau. Si la taille de la mémoire tampon est dépassée, les paquets sont abandonnés.

Le trafic réseau est souvent mesuré par l’utilisation moyenne d’une liaison (mesurée sur 30 secondes à 5 minutes en fonction de la configuration). Bien que cette moyenne indique un flux constant et relativement régulier, l'utilisation de l'interface à une échelle de millisecondes est souvent très sporadique.

Figure 1. Représentation visuelle de la cause sous-jacente des pertes de sortie sur l’interface haut débit.

D'après le schéma :

1. Les flux de paquets A, B et C représentent des groupes de bits dans un flux.

2. Les flux A, B et C sont transmis via l'interface 100G et reçus au niveau du commutateur de tronçon suivant.

3. Observez que les bits A et certains bits B sont transférés à l'interface de sortie 10G.

- Cependant, lorsque le flux C arrive, le commutateur a mis en mémoire tampon certains des bits du flux B en raison de l'incapacité de retirer les bits de la file d'attente aussi rapidement qu'ils arrivent.

- La mémoire tampon est pleine et ne peut pas contenir à la fois les bits B restants et tous les bits du paquet C.

- Si le classifieur d'entrée détermine qu'il n'y a pas de place pour ne serait-ce qu'un bit de la trame suivante, il abandonne le paquet entier !

4. Le flux A et une partie de B sont transmis via l'interface 10G.

Les termes Vitesse/Bande passante de l'interface sont tous deux quelque peu incorrects, car :

- Bande passante = données (bits)/temps

- Les bits n'accélèrent pas physiquement lorsqu'ils passent de 10G > 100G > 10G

La différence de vitesse est les capacités d'entrelacement/le nombre de voies/le nombre d'impulsions par intervalle de temps, le mécanisme de codage, etc., par rapport au support (lumière/électrons) qui va plus vite.

Conseil : Utilisez la commande load-interval <30-600> en mode de configuration d'interface pour modifier le délai d'intervalle de charge en secondes. (l'intervalle de charge représente la fréquence à laquelle le commutateur interroge les compteurs d'interface).

Vérifier

Le dépannage des pertes de sortie sur les interfaces haut débit peut être un processus complexe, mais certaines étapes générales peuvent aider à identifier et à résoudre le problème.

Étape 1 : identification de l’interface concernée

- Commencez par réduire l'interface qui subit les pertes de sortie.

- Utilisez la commande show interfaces | include is up|Total output abandonne le résultat de la commande ou utilisez les outils de surveillance pour déterminer quelle interface est confrontée au problème.

Étape 2 : identification des interfaces entrantes et sortantes

- Pour vérifier l'interface avec les mappages ASIC, exécutez la commande show platform software fed <switch|active> ifm mappings.

Étape 3 : vérification de l’allocation de mémoire tampon

- Il est important de vérifier l'allocation de mémoire tampon et la configuration d'interface pour les interfaces concernées.

Étape 4. Vérification des microrafales avec Wireshark :

- Les pertes de sortie sur les interfaces haut débit peuvent souvent être causées par des microrafales de trafic.

- Utilisez des outils d’analyse du trafic tels que Wireshark pour surveiller les modèles de trafic et identifier les microrafales potentielles.

Étape 5. Envisagez une mise à niveau matérielle :

- Si les étapes précédentes ne résolvent pas le problème, il est nécessaire de mettre à niveau le matériel, tel que l'interface, le périphérique ou l'infrastructure réseau, pour gérer l'augmentation du trafic.

Identifier l'interface affectée

Pour identifier l'interface affectée qui subit des pertes de sortie, utilisez la commande show interfaces.

- Cette commande fournit des informations détaillées sur chaque interface, notamment des statistiques sur les erreurs d'entrée et de sortie, les paquets abandonnés et d'autres informations critiques.

Pour affiner la liste des interfaces et identifier rapidement l'interface affectée, utilisez la commande show interfaces | include is up|Total output drops pour filtrer les interfaces hors service ou admin down, et n'afficher que celles qui sont actives et qui ont des abandons.

- Par exemple, vous pouvez utiliser cette commande pour afficher uniquement les interfaces qui ont subi des pertes de sortie.

Cat9k(config)#show interfaces | in is up|Total output drops

HundredGigE1/0/1 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 54845

HundredGigE1/0/10 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 1540231

--snip--

Conseil : Utilisez la commande show interfaces et filtrez le résultat avec les critères appropriés pour identifier rapidement et facilement l'interface affectée. Prenez les mesures nécessaires pour résoudre le problème.

Par défaut, sur les commutateurs de la gamme Catalyst 9000, les abandons de paquets de sortie sont affichés en octets au lieu de paquets. Il est important de déterminer si la quantité de pertes de sortie trouvée a eu un impact réel ou a simplement été causée par un trafic transitoire en salves.

Pour calculer le pourcentage du total des octets de sortie transmis sur une interface qui ont été abandonnés :

- Collectez le nombre total de pertes en sortie à partir de l'interface.

- Collectez le nombre total d'octets en sortie à partir de l'interface.

- Calculez le pourcentage de pertes en sortie. Divisez le nombre total de pertes en sortie par le nombre total d'octets en sortie et multipliez-le par 100.

Cela indique le pourcentage d'octets de sortie qui ont été abandonnés sur l'interface, ce qui peut vous aider à déterminer s'il y a un problème d'encombrement ou d'allocation de mémoire tampon qui doit être résolu, ou si les abandons de sortie ont été provoqués par un trafic de microrafale transitoire.

Utilisez la commande show interface <interface> pour collecter les informations.

Cat9k#show interfaces twentyFiveGigE 1/0/41

TwentyFiveGigE1/0/41 is up, line protocol is up (connected)

Hardware is Twenty Five Gigabit Ethernet, address is dc77.4c8a.4289 (bia dc77.4c8a.4289)

MTU 1500 bytes, BW 25000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 3/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 10Gb/s, link type is auto, media type is SFP-10GBase-AOC1M

input flow-control is on, output flow-control is off

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:06, output 00:00:10, output hang never

Last clearing of "show interface" counters 6w1d

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 299040207

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 767000 bits/sec, 155 packets/sec

30 second output rate 14603000 bits/sec, 1819 packets/sec

931864194 packets input, 572335285416 bytes, 0 no buffer

Received 933005 broadcasts (933005 multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 0 multicast, 0 pause input

0 input packets with dribble condition detected

1067891106 packets output, 5930422327799 bytes, 0 underruns

--snip--

Total des pertes en sortie : 299040207

Total des octets de sortie : 5930422327799

Pourcentage de pertes en sortie = 299040207/5930422327799 x 100 = 0,005 %

Dans cet exemple, le total des pertes en sortie représente 0,005 % de la quantité totale d'octets transmis sur cette interface au cours des six dernières semaines (dernier effacement des compteurs 6w1d).

- Le nombre total de paquets par rapport au nombre de paquets abandonnés est mineur et n'a aucun impact.

Identifier les interfaces entrantes et sortantes

Pour mieux allouer les tampons logiciels et gérer le trafic sur les commutateurs de la gamme Catalyst 9000, pensez à sélectionner des interfaces entrantes et sortantes dans différents ASIC.

Un tampon logiciel, également appelé tampon dynamique ou tampon partagé, désigne une partie de la mémoire qui est allouée de façon dynamique pour stocker temporairement des paquets en période d'encombrement ou de charge de trafic élevée.

Conseil : Reportez-vous au document Comprendre l'allocation de tampon de file d'attente sur les commutateurs Catalyst 9000 pour des informations détaillées sur l'allocation de tampon dans les commutateurs de la gamme Catalyst 9000.

D'après l'architecture d'un modèle spécifique de commutateurs Catalyst 9000, il est important de noter qu'ils intègrent souvent plusieurs circuits ASIC chargés de diverses fonctions.

Pour vérifier l'interface avec les mappages ASIC, vous pouvez exécuter la commande suivante : show platform software fed <switch|active> ifm mappings

Cet exemple montre l'interface avec les mappages ASIC. Plage d'interfaces TenGigabitEthernet1/0/1 à TenGigabitEthernet1/0/24 mappés sur ASIC 1 tandis que les autres sont mappés sur ASIC 0 :

Cat9k#show platform software fed switch active ifm mappings

Interface                 IF_ID    Inst Asic Core Port SubPort Mac  Cntx LPN  GPN  Type Active

TenGigabitEthernet1/0/1   0x9        3   1   1    0      0      11   0    1    1    NIF  Y

TenGigabitEthernet1/0/2   0xa        3   1   1    1      0      10   1    2    2    NIF  Y

TenGigabitEthernet1/0/3   0xb        3   1   1    2      0      9    2    3    3    NIF  Y

TenGigabitEthernet1/0/4   0xc        3   1   1    3      0      8    3    4    4    NIF  Y

TenGigabitEthernet1/0/5   0xd        3   1   1    4      0      7    4    5    5    NIF  Y

TenGigabitEthernet1/0/6   0xe        3   1   1    5      0      6    5    6    6    NIF  Y

TenGigabitEthernet1/0/7   0xf        3   1   1    6      0      5    6    7    7    NIF  Y

TenGigabitEthernet1/0/8   0x10       3   1   1    7      0      4    7    8    8    NIF  Y

TenGigabitEthernet1/0/9   0x11       3   1   1    8      0      3    8    9    9    NIF  Y

TenGigabitEthernet1/0/10  0x12       3   1   1    9      0      2    9    10   10   NIF  Y

TenGigabitEthernet1/0/11  0x13       3   1   1    10     0      1    10   11   11   NIF  Y

TenGigabitEthernet1/0/12  0x14       3   1   1    11     0      0    11   12   12   NIF  Y

TenGigabitEthernet1/0/13  0x15       2   1   0    12     0      11   0    13   13   NIF  Y

TenGigabitEthernet1/0/14  0x16       2   1   0    13     0      10   1    14   14   NIF  Y

TenGigabitEthernet1/0/15  0x17       2   1   0    14     0      9    2    15   15   NIF  Y

TenGigabitEthernet1/0/16  0x18       2   1   0    15     0      8    3    16   16   NIF  Y

TenGigabitEthernet1/0/17  0x19       2   1   0    16     0      7    4    17   17   NIF  Y

TenGigabitEthernet1/0/18  0x1a       2   1   0    17     0      6    5    18   18   NIF  Y

TenGigabitEthernet1/0/19  0x1b       2   1   0    18     0      5    6    19   19   NIF  Y

TenGigabitEthernet1/0/20  0x1c       2   1   0    19     0      4    7    20   20   NIF  Y

TenGigabitEthernet1/0/21  0x1d       2   1   0    20     0      3    8    21   21   NIF  Y

TenGigabitEthernet1/0/22  0x1e       2   1   0    21     0      2    9    22   22   NIF  Y

TenGigabitEthernet1/0/23  0x1f       2   1   0    22     0      1    10   23   23   NIF  Y

TenGigabitEthernet1/0/24  0x20       2   1   0    23     0      0    11   24   24   NIF  Y

TenGigabitEthernet1/0/25  0x21       1   0   1    24     0      11   0    25   25   NIF  Y

TenGigabitEthernet1/0/26  0x22       1   0   1    25     0      10   1    26   26   NIF  Y

TenGigabitEthernet1/0/27  0x23       1   0   1    26     0      9    2    27   27   NIF  Y

TenGigabitEthernet1/0/28  0x24       1   0   1    27     0      8    3    28   28   NIF  Y

TenGigabitEthernet1/0/29  0x25       1   0   1    28     0      7    4    29   29   NIF  Y

TenGigabitEthernet1/0/30  0x26       1   0   1    29     0      6    5    30   30   NIF  Y

TenGigabitEthernet1/0/31  0x27       1   0   1    30     0      5    6    31   31   NIF  Y

TenGigabitEthernet1/0/32  0x28       1   0   1    31     0      4    7    32   32   NIF  Y

TenGigabitEthernet1/0/33  0x29       1   0   1    32     0      3    8    33   33   NIF  Y

TenGigabitEthernet1/0/34  0x2a       1   0   1    33     0      2    9    34   34   NIF  Y

TenGigabitEthernet1/0/35  0x2b       1   0   1    34     0      1    10   35   35   NIF  Y

TenGigabitEthernet1/0/36  0x2c       1   0   1    35     0      0    11   36   36   NIF  Y

TenGigabitEthernet1/0/37  0x2d       0   0   0    36     0      11   11   37   37   NIF  Y

TenGigabitEthernet1/0/38  0x2e       0   0   0    37     0      10   10   38   38   NIF  Y

TenGigabitEthernet1/0/39  0x2f       0   0   0    38     0      9    9    39   39   NIF  Y

TenGigabitEthernet1/0/40  0x30       0   0   0    39     0      8    8    40   40   NIF  Y

TenGigabitEthernet1/1/1   0x31       0   0   0    40     0      0    19   41   41   NIF  N

TenGigabitEthernet1/1/2   0x32       0   0   0    41     0      0    18   42   42   NIF  N

TenGigabitEthernet1/1/3   0x33       0   0   0    42     0      0    17   43   43   NIF  N

TenGigabitEthernet1/1/4   0x34       0   0   0    43     0      0    16   44   44   NIF  N

TenGigabitEthernet1/1/5   0x35       0   0   0    44     0      0    15   45   45   NIF  N

TenGigabitEthernet1/1/6   0x36       0   0   0    45     0      0    14   46   46   NIF  N

TenGigabitEthernet1/1/7   0x37       0   0   0    46     0      0    13   47   47   NIF  N

TenGigabitEthernet1/1/8   0x38       0   0   0    47     0      0    12   48   48   NIF  N

FortyGigabitEthernet1/1/1 0x39       0   0   0    48     0      4    4    49   49   NIF  N

FortyGigabitEthernet1/1/2 0x3a       0   0   0    49     0      0    0    50   50   NIF  N

Allocation de mémoire tampon

L'allocation de mémoire tampon est un facteur important pour éviter les pertes de sortie, car les mémoires tampons sont utilisées pour stocker temporairement le trafic qui ne peut pas être transféré en raison d'un encombrement ou d'autres variables. S'il n'y a pas suffisamment de mémoires tampon disponibles, le trafic est abandonné, ce qui entraîne des performances réseau médiocres et des interruptions potentielles. Avec cette vérification, vous pouvez vous assurer que le commutateur a suffisamment d'espace tampon pour gérer des charges de trafic élevées.

La commande show platform hardware fed switch active qos queue stats interface <interface> vous permet de voir des statistiques par file d'attente sur une interface, qui incluent le nombre d'octets mis en file d'attente dans les mémoires tampon et le nombre d'octets abandonnés en raison du manque de mémoires tampon disponibles.

Dans cet exemple :

- Les files d'attente 0 à 4 contiennent actuellement le trafic mis en file. Le trafic reçu sur cette interface est temporairement stocké dans les tampons jusqu'à ce qu'il puisse être transmis.

- Seule la file d'attente 2 a enregistré un trafic rejeté ou abandonné (2 401 607 octets).

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/41

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

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

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

High Watermark Soft Buffers:  Port Monitor Disabled

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

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

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

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

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

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

0       0                    0             40588200              9368282                    0

1       0                    0             23584521               789524                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0            487852543                    0

4       0                    0                    0              5483512                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware 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             24010607 <-- (drops on Q2)  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

Dépannage

Modifier l'allocation tampon

Pour augmenter la valeur des tampons logiciels utilisés par une interface, utilisez la commande qos queue-softmax-multipliceren mode de configuration globale pour spécifier une valeur comprise entre 100 et 4800. La valeur par défaut est 100.

- Cette commande augmente la capacité d'une file d'attente à port unique à absorber les microrafales.

- 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é.

Cette configuration s’applique à toutes les interfaces :

- L'allocation de mémoire tampon elle-même suppose que les microrafales n'ont pas lieu sur tous les ports du commutateur en même temps.

- Si des microrafales se produisent à des moments aléatoires, le tampon partagé peut dédier des unités de tampon supplémentaires pour les absorber.

Utilisez la commande qos queue-softmax-multiplicateur<100 4800> en mode de configuration globale pour modifier l'allocation de mémoire tampon logicielle. Si vous configurez cette valeur sur la valeur maximale disponible, le commutateur a la plus grande probabilité d'éliminer ou de réduire les pertes de sortie. Il s'agit d'une pratique recommandée couramment pour éviter les chutes lorsque cela est possible.

Cat9k(config)#qos queue-softmax-multiplier ?

<100-4800> multiplier(%)

Utilisez la commande show platform hardware fed active qos queue config interface <interface> pour identifier l'allocation de mémoire tampon logicielle sur la gamme Catalyst 9000.

Cet exemple montre les tampons logiciels par défaut alloués sur une interface qui a négocié à la vitesse de 10Gbps sur un Catalyst 9500.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:5 - 4320 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  6   480   8  1920  16   960   0     0   3  5760      En <-- 1920 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  11  2880  16  1440   8   720   3  5760      En <-- 2880 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   3  5760      En

3   1  5     0   6     0   0     0   0     0   3  5760      En

4   1  5     0   6     0   0     0   0     0   3  5760      En

5   1  5     0   6     0   0     0   0     0   3  5760      En

6   1  5     0   6     0   0     0   0     0   3  5760      En

7   1  5     0   6     0   0     0   0     0   3  5760      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

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

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

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

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

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

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

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

0       0    1912       0       0    2137       0       0    2400       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0    2295       0       0    2565       0       0    2880       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

Cet exemple montre les tampons logiciels alloués sur une interface qui a négocié un débit de 10 Gbit/s sur un Catalyst 9500 avec un multiplicateur 4800 configuré.

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:4 - 42000 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

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

0   1  6   480  10 42000   1  1312   0     0   4 42000      En <-- 42000 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  10 42000   1  1312   1  1312   4 42000      En <-- 42000 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   4 42000      En

3   1  5     0   6     0   0     0   0     0   4 42000      En

4   1  5     0   6     0   0     0   0     0   4 42000      En

5   1  5     0   6     0   0     0   0     0   4 42000      En

6   1  5     0   6     0   0     0   0     0   4 42000      En

7   1  5     0   6     0   0     0   0     0   4 42000      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

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

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

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

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

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

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

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

0       0   33851       0       0   37833       0       0   42480       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0   33468       0       0   37406       0       0   42000       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

Remarque : L'allocation des tampons logiciels varie. Il est possible que l'allocation ne corresponde pas au résultat ci-dessus. Le résultat de l'allocation varie en fonction de la plate-forme spécifique utilisée, des stratégies QoS appliquées et de la vitesse de fonctionnement négociée de l'interface en question.

Modifier les tampons 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 au 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 d'interface, vingtFiveGigE 1/0/1 a subi des pertes de sortie. Comme l’illustre la commande output egress policy-map appliquée à cette interface.

La commande show platform hardware fed switch active qos queue stats interface <interface> vous permet de voir les 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.

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/1

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

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

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

High Watermark Soft Buffers:  Port Monitor Disabled

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

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

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

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

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

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

0       0                    0                    0                   82                    0

1       0                    0                    0                 7517                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0           7174010710                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware 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             24010607                    0                    0                    0

3                    0                    0             20071103                    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

Pour réduire les pertes de sortie sur cette interface, sur la base des compteurs Enqueue, les files d’attente Q0 à Q1 ont un taux de mise en file d’attente très faible, et ne peuvent donc pas nécessiter autant de tampons que les files d’attente Q2 et Q3. L’action recommandée est d’allouer plus de tampons à la file d’attente 2 et à la file d’attente 3, puisque ces files d’attente ont un trafic mis en file d’attente plus élevé que toute autre file d’attente.

- Pour modifier l'allocation de mémoire tampon, vous pouvez utiliser la configuration queue-buffers ratio <0-100> dans le policy-map appliqué à l'interface 2500 GigE 1/0/1.

Remarque : Si cette commande est configurée sur chaque classe de la stratégie, elle doit ajouter jusqu'à 100. Toutefois, si une seule classe est configurée, le système soustrait uniformément les tampons des autres files d'attente.

Cet exemple montre comment configurer un rapport queue-buffers sur un policy-map.

Cat9k(config)#policy-map test

Cat9k(config-pmap)# class Voice

Cat9k(config-pmap-c)# priority level 1

Cat9k(config-pmap-c)# queue-buffers ratio 5

Cat9k(config-pmap-c)# class Video

Cat9k(config-pmap-c)# bandwidth remaining percent 50

Cat9k(config-pmap-c)# queue-buffers ratio 15

Cat9k(config-pmap-c)# class BuisnessCritical

Cat9k(config-pmap-c)# bandwidth remaining percent 30

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 3

Cat9k(config-pmap-c)# class class-default

Cat9k(config-pmap-c)# bandwidth remaining percent 20

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 4

À partir de la version Cisco IOS XE 17.2.1, les commutateurs basés sur UADP 3.0 (Catalyst 9500 High Performance et Catalyst 9600) peuvent être configurés pour partager les tampons de gestion active de la file d'attente (AQM) entre les deux coeurs à l'intérieur du même ASIC.

- Un port configuré avec le partage de mémoire tampon utilise n'importe quelle mémoire tampon AQM disponible, quels que soient les coeurs auxquels les mémoires tampons AQM sont mappées. Cela permet de gérer des salves de trafic plus élevées qui auraient saturé la mémoire tampon d'un seul coeur AQM.

- Vous pouvez activer cette fonctionnalité avec la commande qos share-buffer en mode de configuration globale.

- Vous pouvez vérifier la fonctionnalité avec la commande d'interface show platform hardware fed active qos queue config. Il s'agit d'une configuration globale qui affecte l'ensemble du système.

Vous pouvez désactiver le partage de mémoire tampon avec la forme no de la commande, no qos share-buffer.

Cat9k(config)#qos share-buffer

Cat9k(config)#end

Analyser les pertes de sortie avec Wireshark

Pour vérifier la présence de microrafales sur un réseau, vous pouvez utiliser un outil de capture de paquets tel que Wireshark :

- Wireshark capture les paquets et vous permet d'analyser le trafic réseau en temps réel ou après la capture.

- Pour identifier les microrafales qui se produisent lorsqu’une perte se produit avec Wireshark, démarrez la capture de paquets sur l’interface concernée et vérifiez l’interface à plusieurs reprises jusqu’à ce qu’une perte de sortie se produise.

- Une fois la capture terminée, ouvrez le fichier de capture dans Wireshark et recherchez les périodes de trafic élevé suivies de périodes de trafic faible ou nul. Il s'agit de microrafales potentielles.

Pour capturer et analyser efficacement les pertes de sortie sur une interface, utilisez les recommandations suivantes :

- EPC (Embedded Packet Capture) ne doit pas être utilisé. EPC limite l'ensemble du trafic à un maximum de 1 000 paquets par seconde (pps), ce qui peut potentiellement invalider les données.

- La méthode recommandée est une SPAN TX-Only de l'interface où les pertes de sortie sont identifiées.

- Les ports source et de destination doivent avoir la même vitesse, ou le port de destination doit avoir une vitesse plus élevée que le port source lorsque vous utilisez la fonctionnalité SPAN. Cela garantit que la session SPAN n'entraîne pas d'encombrement supplémentaire du réseau ou de pertes de paquets en raison de vitesses de port inadaptées.

- Il est important de collecter la session SPAN pendant que les abandons de sortie s'incrémentent activement. Cela vous permet de capturer le trafic approprié et d'identifier la cause première de la microrafale. Si la session SPAN est collectée après les abandons, vous ne pouvez pas capturer le trafic approprié.

Pour vérifier si ces périodes de trafic élevé sont bien des microrafales, utilisez la fonction de graphique d'E/S Wireshark. Comme le graphique d'E/S affiche une représentation graphique du trafic réseau au fil du temps, il est plus facile d'identifier les microrafales. Pour créer un graphique d'E/S, accédez à Statistiques > Graphique d'E/S :

Remarque : pour illustrer cette procédure, nous avons utilisé une capture de paquets effectuée sur une interface 1 Gbit/s. Cependant, les étapes sont les mêmes pour le dépannage des pertes de sortie sur n'importe quelle interface à haut débit.

Figure 2. Sélectionnez le graphique E/S.

Le graphique suivant montre une ligne qui représente la quantité de données en transit dans le temps. Recherchez des pics dans le graphique, qui indiquent des périodes de trafic élevé. Si ces pics sont suivis de périodes de trafic faible ou nul, vous avez peut-être identifié une microrafale.

La Figure 3. illustre le graphique E/S de la capture de paquets.

Il est important de s'assurer que tous les paquets sont sélectionnés sans qu'aucun filtre d'affichage ne soit appliqué. En outre, sélectionnez l'option Graphique linéaire et définissez l'axe Y sur Bits pour analyser correctement le trafic.

Figure 4. Montre comment sélectionner l'option Graphique linéaire et définir l'axe Y sur Bits.

Lorsque vous analysez une capture de paquets volumineux, il est essentiel d'identifier la période spécifique qui vous intéresse. Par exemple, dans ce scénario, on peut observer qu'il y a un trafic important dans les environs de 30 secondes.

Si vous cliquez sur le pic d’un pic dans le graphique d’E/S, Wireshark sélectionne ce paquet en arrière-plan. Dans notre scénario, les paquets 79280 et 101896 ont été sélectionnés pour créer un sous-ensemble de la capture de paquets afin de travailler dans les horodatages où la présence de microrafales est suspectée.

Figure 5. Montre comment créer un sous-ensemble de la capture de paquets qui se concentre sur les horodatages suspectés de présence de microrafales.

Pour exporter les premier et dernier paquets sélectionnés vers un nouveau fichier, assurez-vous de sélectionner les icônes radio Range et Captured.

La Figure 6 montre comment exporter et enregistrer le sous-ensemble de la capture de paquets.

Après avoir enregistré le fichier, ouvrez-le et revenez au graphique E/S. Assurez-vous que l'intervalle est défini sur 1ms pour représenter graphiquement les pics observés en millisecondes.

La Figure 7 présente le graphique E/S du sous-ensemble exporté de la capture de paquets.

Lorsque le graphique est affiché, il est important d'identifier les pics qui représentent les périodes où le trafic a été transmis à la vitesse de ligne pendant une milliseconde complète, ce qui entraîne le remplissage de la mémoire tampon et où des pertes de sortie auraient pu être générées. Par exemple, sur une interface 1 Gbit/s, cela correspond à 1 000 000 bits par milliseconde.

Cliquez sur le pic d'une pointe représentant une microrafale potentielle. Il permet d'identifier le paquet qui a causé les pertes de sortie. Ce paquet peut ensuite être analysé plus en détail afin de déterminer la cause première de la microrafale et de prendre des mesures correctives.

La Figure 8 montre comment identifier le trafic de microrafales potentiel dans le graphique d'E/S.

Avertissement : Il est important de tenir compte de cette limitation lorsque vous utilisez Wireshark ou tout autre outil de capture de paquets sur une interface haut débit. Les interfaces haut débit, telles que 40G et 100G, génèrent un volume important de trafic réseau qui risque de saturer les ressources du système utilisé pour capturer les paquets. Par conséquent, cela peut entraîner l'abandon de paquets pendant le processus de capture et peut avoir un impact sur la précision et l'exhaustivité des données capturées.

Autres approches

Si vous avez épuisé les ressources allouées à une file d'attente et que vous continuez à subir des pertes, vous devez envisager d'autres options pour gérer l'encombrement. Il peut s'agir :

- Améliorez les vitesses des interfaces. Vous pouvez passer de la 1G à la 10G, de la 10G à la 25G ou à la 40G pour augmenter la bande passante de sortie et réduire le taux de surabonnement.

- Remplacez la plate-forme par une plate-forme dotée d'une mémoire tampon par file d'attente/interface plus importante.

- Réglez les paramètres d'application pour réduire la taille de la rafale qui entraîne des pertes de sortie.

- Utilisez un planificateur de mise en file d'attente pour hiérarchiser une classe de trafic par rapport à une autre. Cette méthode donne la priorité à la protection du trafic plus important au détriment de l'augmentation des abandons pour le trafic moins important.

- Implémentez des algorithmes de gestion de congestion tels que WRED (Weighted Random Early Discard) ou WTD (Weighted Tail Drop) pour abandonner le trafic plus tôt. Les seuils WRED ou WTD peuvent entraîner une baisse plus rapide du trafic par salves, ce qui entraîne une réduction automatique des fenêtres de transmission pour les clients finaux. Cela permet à d'autres trafics moins chargés de rencontrer un encombrement réduit, garantissant une allocation de mémoire tampon minimale pour différentes classes de trafic pendant les périodes de congestion élevée.

- Contrôlez le trafic le plus proche de la source d'une application connue à bande passante élevée, comme les sauvegardes de données pour réduire la fréquence et la gravité des rafales sur le réseau. Cela permet aux zones à faible bande passante entre la source et la destination, situées ailleurs sur le réseau, de mieux gérer à la fois le trafic par salves et le trafic réseau normal.

- Utilisez Port-channels. Cependant, il est important de noter qu'en raison du hachage, il est possible que plusieurs flux soient dirigés vers un seul membre, ce qui peut entraîner des chutes persistantes.

Il est important de noter que certaines de ces options nécessitent des configurations plus complexes, telles que l'ingénierie du trafic, mais peuvent offrir des avantages significatifs pour réduire l'encombrement du réseau et les pertes de sortie.

Informations connexes

- Plates-formes de commutation Cisco Catalyst 9000 : Qualité de service et mise en file d'attente

- Guide de configuration de la qualité de service, Cisco IOS XE 17.x

- Matrice de compatibilité Cisco Optics-to-Device

- Soutenir l'innovation : Comment le TAC Cisco transforme la documentation et simplifie le libre-service

- Assistance et documentation techniques - Cisco Systems