Comprendre la configuration de la mémoire tampon CoS

Junos utilise une mémoire tampon de paquets commune à l’ensemble du PFE pour stocker les paquets dans les files d’attente d’interface. Cette mémoire tampon partagée dispose d’un compte d’entrée et de sortie distinct pour prendre des décisions d’acceptation, d’abandon ou de pause. Comme le commutateur dispose d’un seul pool de mémoires avec une comptabilisation distincte des entrées et des sorties, la totalité de la mémoire tampon est disponible à la fois du point de vue de l’entrée et de la sortie. Les paquets sont pris en compte lorsqu’ils entrent dans l’appareil et en sortent, mais il n’existe pas de concept de paquet arrivant dans une mémoire tampon d’entrée puis étant déplacé vers une mémoire tampon de sortie. Les quantités de mémoire tampon communes spécifiques à chaque commutateur sont répertoriées dans le Tableau 1.

Tableau 1 : mémoire tampon de paquets commune sur les commutateurs

Commutateur

Mémoire tampon de paquets commune

QFX5100, EX4600

12 Mo

QFX5110, QFX5200-32C

16 Mo

QFX5200-48Y

22 Mo

QFX5120

32 Mo

QFX5130

132 Mo

QFX5210

42 Mo

QFX5220

64 Mo

QFX5230

112 Mo

QFX5240

165 Mo

QFX5700

132 Mo

Les mémoires tampon sont divisées en deux pools entrant et sortant :

  1. Les mémoires tampons partagées sont un pool de mémoire global que le commutateur alloue dynamiquement aux ports selon les besoins, de sorte que les tampons sont partagés entre les ports du commutateur.

  2. Les tampons dédiés sont un pool de mémoire divisé également entre les ports du commutateur. Chaque port reçoit une quantité minimale garantie d’espace tampon, dédiée à chaque port, non partagée entre les ports.

Remarque :

Le trafic sans perte est le trafic sur lequel vous activez le contrôle des flux PFC (Priority-based Flow Control) pour garantir un transport sans perte. Le trafic sans perte ne fait pas référence au trafic best effort sur une liaison activée pour Ethernet PAUSE (IEEE 802.3x).

L’équipement réserve un espace tampon non configurable pour s’assurer que les ports et les files d’attente reçoivent une allocation de mémoire minimale. Vous pouvez configurer la façon dont le système utilise le reste de l’espace tampon pour optimiser l’allocation à votre combinaison de trafic réseau. Vous pouvez configurer le pourcentage d’espace tampon disponible utilisé comme espace tampon partagé par rapport à l’espace tampon dédié. Vous pouvez également configurer la manière dont l’espace tampon partagé est alloué aux différents types de trafic. Vous pouvez optimiser les paramètres de mémoire tampon pour le trafic de votre réseau.

La configuration de classe de service par défaut fournit deux classes de transfert sans perte (fcoe et no-loss), une classe de transfert unicast best effort, une classe de transfert de trafic de contrôle réseau et une classe de transfert multidestination (échec de la recherche de multicast, de diffusion et de destination).

Chaque classe de transfert par défaut est mappée à une file d’attente de sortie par défaut différente. La configuration par défaut alloue les mémoires tampons de manière à prendre en charge une quantité modérée de trafic sans perte tout en offrant la possibilité d’absorber les rafales de trafic dans la transmission best effort.

La modification des paramètres de mémoire tampon modifie la capacité des tampons à absorber les rafales de trafic et à gérer le trafic sans perte. Par exemple, les réseaux où le trafic est principalement axé sur les meilleurs efforts nécessitent d’allouer la majeure partie de l’espace tampon partagé à des tampons best effort. Cela fournit des tampons profonds et flexibles capables d’absorber les pics de trafic avec une perte de paquets minimale, au détriment de la disponibilité de la mémoire tampon pour un trafic sans perte.

À l’inverse, les réseaux avec un trafic essentiellement sans perte nécessitent d’allouer la majeure partie de l’espace tampon partagé à des tampons de marge de manœuvre sans perte. Cela permet d’éviter la perte de paquets sur les flux sans perte au détriment de l’absorption efficace du trafic en rafale best effort.

MISE EN GARDE :

La modification de la configuration de la mémoire tampon est un événement perturbateur. Le trafic s’arrête sur tous les ports jusqu’à ce que la reprogrammation de la mémoire tampon soit terminée.

Cette rubrique décrit l’architecture et les paramètres de la mémoire tampon :

Pools de mémoires tampons

Tant au niveau de l’entrée que de la sortie, la mémoire tampon PFE est divisée en deux pools principaux : un pool de mémoires tampons partagées et un pool de mémoires tampons dédié qui garantit une allocation minimale à chaque port. Vous pouvez configurer la quantité d’espace tampon allouée à chacun des deux pools. Une partie de l’espace tampon est réservée afin qu’il y ait toujours une quantité minimale d’espace tampon partagé et dédié disponible pour chaque port.

  • Pool de mémoires tampons partagées : espace mémoire global que tous les ports du commutateur partagent dynamiquement lorsqu’ils ont besoin de tampons. Le pool de mémoires tampons partagé est ensuite partitionné en mémoires tampons pour les types de trafic unicast meilleurs efforts, multidestination au mieux (échecs diffusion, multicast et de recherche de destination) et PFC (sans perte). Vous pouvez allouer de l’espace mémoire partagé global aux partitions en mémoire tampon afin de mieux prendre en charge différentes combinaisons de trafic réseau. Plus le pool de mémoires tampons partagées est grand, mieux le commutateur peut absorber les pics de trafic, car davantage de mémoire partagée est disponible pour le trafic.

  • Pool de mémoires tampons dédié : espace mémoire global réservé alloué de manière égale à chaque port. Le commutateur réserve un pool de mémoires tampons dédié minimum qui n’est pas configurable par l’utilisateur. Vous pouvez répartir l’allocation de mémoire tampon dédiée à un port entre les files d’attente de ports par port et par file d’attente. (Par exemple, cela vous permet de dédier plus d’espace tampon aux files d’attente qui transportent le trafic sans perte.)

    Un pool de mémoires tampons dédié plus grand signifie une plus grande quantité d’espace tampon dédié pour chaque port, de sorte que la congestion sur un port est moins susceptible d’affecter le trafic sur un autre port, car le trafic n’a pas besoin d’utiliser autant d’espace tampon partagé. Cependant, plus le pool de mémoires tampons dédié est grand, moins le commutateur peut gérer de trafic en rafales, car il y a moins de mémoire tampon partagée dynamique.

Vous pouvez configurer la façon dont la partie non réservée disponible de l’espace tampon est allouée au pool de mémoires tampons partagées global et au pool de mémoires tampons partagées dédié en configurant les pourcentages de mémoire tampon partagée d’entrée et de sortie.

Par défaut, 100 % de l’espace tampon non réservé disponible est alloué au pool de mémoires tampons partagé. Si vous modifiez le pourcentage d’espace alloué à la mémoire tampon partagée, l’espace tampon disponible qui n’est pas alloué à la mémoire tampon partagée est alloué à la mémoire tampon dédiée. Par exemple, si vous configurez le pool de mémoires tampons partagées d’entrée à 80 %, les 20 % restants de l’espace tampon disponible sont alloués au pool de mémoires tampons dédié et répartis également entre les ports.

Remarque :

Lorsque 100 % des mémoires tampons disponibles (configurables par l’utilisateur) sont allouées au pool de mémoires tampons partagé, le commutateur réserve toujours un pool de mémoires tampons dédié minimum.

Vous pouvez configurer séparément les allocations de pools de mémoires tampons partagées entrantes et sortantes. Vous pouvez également partitionner le pool de mémoires tampons partagées d’entrée et de sortie pour allouer des pourcentages du pool de mémoires tampons partagées à des types de trafic spécifiques. Si vous n’utilisez pas la configuration par défaut ou l’une des configurations recommandées, portez une attention particulière à la configuration entrante des tampons de marge de débit sans perte (ces tampons gèrent la pause PFC pendant les périodes de congestion) et à la configuration de sortie des tampons de sortie pour gérer la congestion incast (plusieurs sources synchronisées envoyant des données au même récepteur en parallèle).

Outre le pool de mémoires tampons partagées et le pool de mémoires tampons dédié, il existe également un petit pool de mémoires tampons de marge globale d’entrée qui est réservé et n’est pas configurable.

En cas de conflit pour l’espace tampon, le commutateur utilise un algorithme interne pour s’assurer que les pools de mémoires tampons sont répartis équitablement entre les flux concurrents. Lorsque le trafic d’un flux donné dépasse la quantité de mémoire tampon de port dédiée réservée à ce flux, le flux commence à consommer de la mémoire du pool de mémoires tampons partagées dynamique. Les flux concurrents sont en concurrence pour la mémoire tampon partagée avec d’autres flux qui ont également épuisé leurs tampons dédiés. En l’absence de congestion, il n’y a pas de flux concurrents.

Gestion par buffer des flux sans perte (PFC) par rapport à PAUSE Ethernet

Lorsque nous abordons les tampons sans perte dans les sections suivantes, nous entendons les tampons qui gèrent le trafic sur lequel vous activez PFC pour assurer un transport sans perte. Les mémoires tampon sans perte ne sont pas utilisées pour le trafic best effort sur une liaison sur laquelle vous activez Ethernet PAUSE (IEEE 802.3x). Les mémoires tampons partagées d’entrée et de sortie sans perte, ainsi que la mémoire tampon partagée de marge d’entrée sans perte, sont utilisées uniquement pour le trafic sur lequel vous activez PFC.

Remarque :

Pour prendre en charge les flux sans perte, vous devez configurer les fonctionnalités de pontage de centre de données (PFC, DCBX et ETS) et les propriétés de planification appropriées.

Partitions et pool de mémoires tampons partagés

Le pool de mémoires tampons partagées est un espace mémoire global que tous les ports du commutateur partagent dynamiquement lorsqu’ils en ont besoin. Le commutateur utilise le pool de mémoires tampons partagées pour absorber les pics de trafic après l’épuisement du pool de mémoires tampons dédié à un port.

Vous pouvez diviser le pool de mémoires tampons partagées d’entrée et le pool de mémoires tampons partagées de sortie en trois partitions pour allouer des pourcentages de chaque pool de mémoires tampons à différents types de trafic. Lorsque vous partitionnez le pool de mémoires tampons partagées d’entrée ou de sortie :

  • Si vous configurez explicitement une partition de mémoire tampon partagée entrante, vous devez configurer explicitement les trois partitions de mémoire tampon partagée entrantes. (Vous pouvez soit configurer explicitement les trois partitions entrantes, soit utiliser le paramètre par défaut pour les trois partitions entrantes.)

    Si vous configurez explicitement une partition de mémoire tampon partagée de sortie, vous devez configurer explicitement les trois partitions de mémoire tampon partagée de sortie. (Vous pouvez configurer explicitement les trois partitions de sortie ou utiliser le paramètre par défaut pour les trois partitions de sortie.)

    Le commutateur renvoie une erreur de commit si vous ne configurez pas explicitement les trois partitions lors de la configuration des partitions tampon partagées d’entrée ou de sortie.

  • Les pourcentages combinés des trois partitions de mémoire tampon partagée entrantes doivent totaliser exactement 100 %.

    Les pourcentages combinés des trois partitions de mémoire tampon partagée de sortie doivent totaliser exactement 100 %.

    Lorsque vous configurez explicitement des partitions de mémoire tampon partagée entrantes ou sortantes, le commutateur renvoie une erreur de validation si le pourcentage total des trois partitions n’est pas égal à 100 %.

  • Si vous partitionnez explicitement un ensemble de mémoires tampons partagées, vous n’êtes pas obligé de partitionner explicitement l’autre ensemble de mémoires tampons partagées. Par exemple, vous pouvez configurer explicitement les partitions de mémoire tampon partagée d’entrée et utiliser les partitions de mémoire tampon partagée de sortie par défaut. Toutefois, si vous modifiez les partitions de mémoire tampon du pool de mémoires tampons d’entrée pour qu’elles correspondent aux types de flux de trafic attendus, vous souhaiterez probablement également modifier les partitions de mémoire tampon du pool de mémoires tampons de sortie pour qu’elles correspondent à ces flux de trafic.

Vous pouvez configurer le pourcentage d’espace tampon non réservé disponible alloué au pool de mémoires tampons partagé. L’espace que vous n’allouez pas au pool de mémoires tampons partagées est ajouté au pool de mémoires tampons dédié et réparti également entre les ports. La configuration par défaut alloue 100 % de l’espace tampon d’entrée et de sortie non réservé aux tampons partagés.

La configuration des partitions du pool de mémoires tampons partagées d’entrée et de sortie vous permet d’allouer davantage de mémoires tampons aux types de trafic que votre réseau transporte principalement, et moins de mémoires tampons aux autres types de trafic.

Ingress Shared Buffer Pool Partitions

Vous pouvez configurer trois partitions de pool de mémoires tampons entrantes :

  • Buffers sans perte : pool de mémoires tampons partagé pour tout le trafic entrant sans perte. Nous recommandons 5 % comme valeur minimale pour les tampons sans perte.

  • Mémoires tampons sans perte : pool de mémoires tampons partagées pour les paquets reçus pendant qu’une pause est mise en place. Si PFC est activé sur les priorités sur un port, lorsque le port envoie un message de pause à l’homologue connecté, le port utilise les tampons de marge pour stocker les paquets qui arrivent entre le moment où le port envoie le message de pause et le moment où le dernier paquet arrive après que l’homologue a suspendu le trafic. La valeur minimale pour les tampons de marge de manœuvre sans perte est de 0 (zéro) pour cent. (Les tampons de marge sans perte sont les seuls tampons pour lesquels la valeur recommandée peut être inférieure à 5 %.)

  • Lossy Buffers : pool de mémoires tampons partagé pour tout le trafic entrant best effort (unicast best-effort, multidestination et trafic strict-haute priorité). Nous recommandons 5 % comme valeur minimale pour les tampons best effort.

Les pourcentages combinés des partitions de mémoire tampon entrantes sans perte, de marge de manœuvre sans perte et de best effort doivent totaliser exactement 100 %. Si le total des pourcentages de tampon est supérieur à 100 % ou inférieur à 100 %, le commutateur renvoie une erreur de validation. Si vous configurez explicitement une partition de mémoire tampon partagée entrante, vous devez configurer explicitement les trois partitions de mémoire tampon entrante, même si la partition de mémoire tampon de marge de sans perte a une valeur de 0 (zéro) pour cent.

Egress Shared Buffer Pool Partitions

Vous pouvez configurer trois partitions de pool de mémoires tampons de sortie :

  • Buffers sans perte : pool de mémoires tampons partagé pour toutes les files d’attente de sortie sans perte. Nous recommandons 5 % comme valeur minimale pour les tampons sans perte.

  • Lossy Buffers : pool de mémoires tampon partagé pour toutes les files d’attente de sortie best effort (unicast best-effort et files d’attente strictes à haute priorité). Nous recommandons 5 % comme valeur minimale pour les tampons best effort.

  • Mémoires tampons multicast : pool de mémoires tampons partagé pour toutes les files d’attente de sortie multidestination (échec de la recherche de multicast, de diffusion et de destination). Nous recommandons 5 % comme valeur minimale pour les tampons de multicast.

Les pourcentages combinés des partitions de mémoire tampon de sortie sans perte, avec perte et multicast doivent totaliser exactement 100 %. Si le total des pourcentages de tampon est supérieur à 100 % ou inférieur à 100 %, le commutateur renvoie une erreur de validation. Toutes les partitions de mémoire tampon de sortie doivent être explicitement configurées et doivent avoir une valeur d’au moins 5 %. Si vous configurez explicitement une partition de mémoire tampon partagée de sortie, vous devez configurer explicitement les trois partitions de mémoire tampon de sortie, et chaque partition doit avoir une valeur d’au moins 5 %.

Pool de mémoires tampons de ports dédié et allocation de tampons aux files d’attente

Le pool de mémoires tampons global dédié est de la mémoire allouée de manière égale à chaque port, de sorte que chaque port reçoit une quantité minimale d’espace tampon garantie. Les tampons dédiés ne sont pas partagés entre les ports. Chaque port reçoit une proportion égale du pool de mémoires tampons dédié.

Lorsque le trafic entre dans le commutateur et en sort, les ports du commutateur utilisent leurs tampons dédiés pour stocker les paquets. Si les tampons dédiés ne sont pas suffisants pour gérer le trafic, le commutateur utilise des tampons partagés. La seule façon d’augmenter le pool de mémoires tampons dédié est de réduire le pool de mémoires tampons partagées par rapport à sa valeur par défaut de 100 % des mémoires tampons non réservées disponibles.

La quantité d’espace tampon dédié n’est pas configurable par l’utilisateur et dépend du pourcentage de tampons non réservés disponibles alloués aux tampons partagés. (L’espace tampon dédié est égal au nombre minimal de mémoires tampon de port réservées, plus le reste des mémoires tampon non réservées disponibles qui ne sont pas allouées au pool de mémoires tampons partagée.)

Remarque :

Si 100 % des mémoires tampons non réservées disponibles sont allouées au pool de mémoires tampons partagé, le commutateur réserve toujours un pool de mémoires tampons dédié minimum.

Plus le pool de mémoire tampon partagé est grand, meilleure est l’absorption des rafales sur les ports. Plus le pool de mémoires tampons dédié est grand, plus l’espace tampon dédié pour chaque port est important. Plus l’espace tampon dédié est grand, moins la congestion sur un port est susceptible d’affecter le trafic sur un autre port, car le trafic n’a pas besoin d’utiliser autant d’espace tampon partagé.

Allocating Dedicated Port Buffers to Queues

Vous pouvez diviser l’allocation de mémoire tampon dédiée pour un port de sortie entre les files d’attente de ports en incluant l’instruction buffer-size dans la configuration du planificateur. Vous pouvez ainsi contrôler l’allocation de tampons dédiés aux ports de sortie pour chaque port et chaque file d’attente. (Par exemple, cela vous permet de dédier plus d’espace tampon aux files d’attente qui transportent du trafic sans perte, ou d’empêcher le port de réserver des tampons pour les files d’attente qui ne transportent pas de trafic.) L’allocation de tampons de ports dédiés de sortie est une structure hiérarchique qui alloue un pool de mémoires tampons dédié global de manière égale entre les ports, puis répartit l’allocation de chaque port entre les files d’attente de ports.

Par défaut, les ports répartissent leur allocation de tampons dédiés entre leurs files d’attente de sortie dans la même proportion que le planificateur par défaut définit les taux de transmission minimum garantis (l’option transmit-rate ) pour le trafic. Seules les files d’attente incluses dans le planificateur par défaut reçoivent de la bande passante et des mémoires tampons dédiées, dans les proportions indiquées dans le tableau 2 :

Tableau 2 : allocation par défaut de la mémoire tampon dédiée aux files d’attente de sortie (en fonction du planificateur par défaut)

Classe de transfert

File d’attente

Bande passante minimale garantie (transmit-rate)

Proportion de tampons de port dédiés réservés

best-effort

0

5%

5%

FCoE

3

35%

35%

Pas de perte

4

35%

35%

contrôle réseau

7

5%

5%

mcast

8

20%

20%

Dans la configuration par défaut, aucune file d’attente de sortie autre que celles indiquées dans le tableau 2 ne reçoit d’allocation de tampons de port dédiés.

Remarque :

Le commutateur utilise la planification hiérarchique pour contrôler l’allocation de la bande passante des ports et des files d’attente, comme décrit dans Comprendre la planification hiérarchique des ports (ETS) CoS et illustré dans Exemple : configuration de la planification hiérarchique des ports (ETS) CoS. Pour la configuration de la taille de la mémoire tampon de la file d’attente de sortie, lorsque vous attachez un profil de contrôle du trafic (incluant les informations du planificateur de files d’attente) à un port, les mémoires tampons de sortie dédiées sur le port sont réparties entre les files d’attente configurées dans le planificateur.

Si vous ne souhaitez pas utiliser l’allocation par défaut de tampons de port dédiés aux files d’attente, utilisez l’option buffer-size du planificateur attaché au port pour configurer l’allocation des files d’attente. Vous pouvez configurer l’allocation de mémoire tampon dédiée aux files d’attente de deux manières :

  • En pourcentage : la file d’attente reçoit le pourcentage spécifié de mémoires tampon de port dédiées lorsque la file d’attente est mappée au planificateur et que le planificateur est attaché à un port.

  • Une fois que le port dessert les files d’attente qui ont une configuration explicite de taille de mémoire tampon en pourcentage, l’espace tampon de port dédié restant est divisé également entre les autres files d’attente auxquelles un planificateur est attaché. (L’absence de planificateur explicite ou par défaut pour une file d’attente signifie qu’il n’y a pas d’allocation de mémoire tampon dédiée pour cette file d’attente.) Si vous configurez un planificateur et que vous ne spécifiez pas de taille de mémoire tampon en pourcentage, le reste est le paramètre par défaut.

Remarque :

Le total de tous les pourcentages de taille de mémoire tampon explicitement configurés pour toutes les files d’attente sur un port ne peut pas dépasser 100 %.

Configuring Dedicated Port Buffer Allocation to Queues

Dans une configuration de port qui comprend plusieurs ensembles de classes de transfert, avec plusieurs classes de transfert mappées à plusieurs planificateurs, l’allocation de tampons de port dédiés aux files d’attente dépend de la combinaison de files d’attente avec des tailles de mémoire tampon configurées en tant que pourcentages explicites et de files d’attente configurées avec (ou par défaut) avec l’option remainder .

La meilleure façon de démontrer comment l’utilisation des options de pourcentage et de reste affecte l’allocation de tampon de port dédiée aux files d’attente consiste à montrer un exemple d’allocation de tampon de file d’attente, puis à montrer comment l’allocation de tampon de file d’attente change lorsque vous ajoutez une autre classe de transfert (file d’attente) au port.

Le Tableau 3 présente une configuration initiale qui comprend quatre ensembles de classes de transfert, les cinq classes de transfert par défaut (mappées aux cinq files d’attente par défaut pour ces classes de transfert), la configuration des buffer-size options et l’allocation de mémoire tampon résultante pour chaque file d’attente. Le Tableau 4 montre la même configuration après avoir ajouté une autre classe de transfert (best-effort-2, mappée à la file d’attente 1) à l’ensemble de classes de transfert best-effort. La comparaison des allocations de mémoire tampon dans chaque tableau vous montre comment l’ajout d’une autre file d’attente affecte l’allocation de mémoire tampon lorsque vous utilisez des restes et des pourcentages explicites pour configurer l’allocation de mémoire tampon pour différentes files d’attente.

Tableau 3 : attribution de tampons dédiés dans la file d’attente de sortie (exemple 1)

Transfert d’ensemble de classes (groupe prioritaire)

Classe de transfert

File d’attente

Configuration de la taille de la mémoire tampon du planificateur

Allocation de mémoire tampon par file d’attente (pourcentage)

fc-set-be

best-effort

0

10%

10%

FC-set-sans perte

FCoE

3

20%

20%

Pas de perte

4

40%

40%

fc-set-strict-high

contrôle réseau

7

le reste

15%

fc-set-mcast

mcast

8

le reste

15%

Dans ce premier exemple, 70 % du pool de mémoires tampons dédié aux ports de sortie est explicitement alloué aux files d’attente best effort, fcoe et no-loss. Les 30 % restants du pool de mémoires tampons dédiées aux ports sont répartis entre les deux files d’attente qui utilisent l’option remainder (network-control et mcast), de sorte que chaque file d’attente reçoit 15 % du pool de mémoires tampons dédié.

Maintenant, nous ajoutons une autre classe de transfert (file d’attente) au groupe de priorité best-effort (fc-set-be) et la configurons avec une taille de tampon restante au lieu de configurer un pourcentage spécifique. Étant donné qu’une troisième file d’attente partage désormais les tampons dédiés restants, les files d’attente qui partagent le reste reçoivent moins de tampons dédiés, comme indiqué dans le Tableau 4. Les files d’attente avec des pourcentages explicitement configurés reçoivent le pourcentage configuré de tampons dédiés.

Tableau 4 : attribution d’une mémoire tampon dédiée à la file d’attente de sortie avec une autre file d’attente restante (exemple 2)

Groupe prioritaire (fc-set)

Classe de transfert

File d’attente

Configuration de la taille de la mémoire tampon du planificateur

Allocation de mémoire tampon par file d’attente (pourcentage)

fc-set-be

best-effort

0

10%

10%

best-effort-2

1

le reste

10%

FC-set-sans perte

FCoE

3

20%

20%

Pas de perte

4

40%

40%

fc-set-strict-high

contrôle réseau

7

le reste

10%

fc-set-mcast

mcast

8

le reste

10%

Les deux tableaux montrent comment le port divise l’espace tampon dédié qui reste après avoir traité les files d’attente pour lesquelles un pourcentage d’espace tampon dédié est explicitement configuré.

Compromis entre l’espace tampon partagé et l’espace tampon dédié

Le compromis entre l’espace tampon partagé et l’espace tampon dédié est le suivant :

  • Les mémoires tampons partagées offrent une meilleure absorption des pics de trafic, car il existe un plus grand pool de tampons dynamiques que les ports peuvent utiliser en fonction des besoins pour gérer les rafales. Cependant, tous les flux qui épuisent leur espace tampon dédié sont en concurrence pour le pool de mémoire tampon partagé. Un pool de mémoires tampons partagées plus grand signifie un pool de mémoires tampons dédié plus petit, et donc plus de concurrence pour le pool de mémoires tampons partagées, car plus de flux épuisent leur allocation de mémoire tampon dédiée. Un espace tampon partagé trop important a pour conséquence qu’aucun flux ne reçoit beaucoup d’espace tampon partagé, pour maintenir l’équité lorsque de nombreux flux se disputent cet espace.

  • Des tampons dédiés garantissent l’espace tampon sur chaque port. Plus le pool de mémoire tampon dédié est grand, moins la congestion sur un port risque d’affecter le trafic sur un autre port, car le trafic n’a pas besoin d’utiliser autant d’espace tampon partagé. Cependant, moins d’espace tampon partagé signifie moins de capacité à absorber dynamiquement les pics de trafic.

Pour une absorption optimale des rafales, le commutateur a besoin d’un espace tampon dédié suffisant pour éviter une concurrence persistante pour l’espace tampon partagé. Lorsque moins de flux sont en compétition pour les tampons partagés, les flux qui ont besoin d’espace tampon partagé pour absorber les rafales reçoivent une plus grande part du tampon partagé, car moins de flux épuisent leur espace tampon dédié.

La configuration par défaut et les configurations recommandées pour différents scénarios de trafic allouent 100 % de l’espace mémoire configurable par l’utilisateur au pool global de mémoires tampons partagées, car la quantité d’espace réservée aux mémoires tampons dédiées fournit suffisamment d’espace pour éviter une concurrence persistante pour les mémoires tampons partagées dynamiques. Il en résulte moins de flux en compétition pour les tampons partagés, de sorte que les flux concurrents reçoivent une plus grande part de l’espace tampon.

Ordre de consommation de la mémoire tampon

Le pool de mémoires tampons total est divisé en pools de mémoires tampons partagées d’entrée et de sortie et en pools de mémoires tampons dédiés. Lorsque le trafic transite par le commutateur, l’espace tampon est utilisé dans un ordre particulier qui dépend du type de trafic.

À l’entrée, l’ordre de consommation du tampon est le suivant :

  • Trafic unicast best-effort :

    1. Tampons dédiés

    2. Mémoires tampon partagées

    3. Tampons de marge globale (très petits)

  • Trafic unicast sans perte :

    1. Tampons dédiés

    2. Mémoires tampon partagées

    3. Tampons de marge de manœuvre sans perte

    4. Tampons de marge globale (très petits)

  • Trafic multidestination :

    1. Tampons dédiés

    2. Mémoires tampon partagées

    3. Tampons de marge globale (très petits)

À la sortie, l’ordre de consommation de la mémoire tampon est le même pour le trafic unicast best effort, unicast sans perte et multidestination :

  • Tampons dédiés

  • Mémoires tampon partagées

Dans tous les cas, sur tous les ports, le commutateur utilise d’abord le pool de mémoires tampons dédié et le pool de mémoires tampons partagées uniquement une fois le pool de mémoires tampons dédié au port ou à la file d’attente épuisé. Cela réserve la quantité maximale d’espace tampon partagé dynamique pour absorber les rafales de trafic.

Valeurs de pool de mémoires tampons par défaut

Vous pouvez afficher les valeurs par défaut ou configurées du pool de mémoires tampons entrantes et de sortie en unités KB à l’aide de la show class-of-service shared-buffer commande opérationnelle. Vous pouvez afficher les valeurs du pool de mémoires tampons partagées configurées en unités de pourcentage à l’aide de la show configuration class-of-service shared-buffer commande opérationnelle.

Cette section fournit les valeurs par défaut de mémoire tampon totale, de mémoire tampon partagée et de mémoire tampon dédiée.

Taille totale du pool de mémoires tampons

Le pool de mémoires tampons total est une mémoire commune qui a une comptabilité d’entrée et de sortie distincte, de sorte que le pool de mémoires tampons complet est disponible à la fois du point de vue de l’entrée et de la sortie. Le pool de mémoires tampons total se compose de l’espace tampon dédié et de l’espace tampon partagé. La taille du pool de mémoires tampons total n’est pas configurable par l’utilisateur, mais l’allocation d’espace tampon aux pools de mémoires tampons dédiés et partagés est configurable par l’utilisateur.

Valeurs par défaut du pool de mémoires tampons partagées

Certains commutateurs ont un pool de mémoire tampon partagée plus important que d’autres. Toutefois, l’allocation de l’espace tampon partagé aux pools de mémoires tampon d’entrée et de sortie est la même en pourcentage, même si les valeurs absolues sont différentes. Par exemple, la mémoire tampon d’entrée sans perte par défaut représente 9 % de l’espace total de la mémoire tampon d’entrée partagée sur tous les commutateurs, même si la valeur absolue par défaut de la mémoire tampon d’entrée sans perte diffère d’un commutateur à l’autre.

Shared Ingress Buffer Default Values

Le Tableau 5 présente les valeurs d’allocation par défaut de la mémoire tampon partagée entrante en pourcentage pour tous les commutateurs. Si vous modifiez l’allocation de mémoire tampon partagée par défaut, vous configurez la modification en pourcentage.

Tableau 5 : valeurs par défaut de la mémoire tampon d’entrée partagée (pourcentage)

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

100%

9%

45%

46%

Shared Egress Buffer Default Values

Le Tableau 6 présente les valeurs d’allocation de mémoire tampon partagée de sortie par défaut pour tous les commutateurs en pourcentage.

Tableau 6 : valeurs par défaut de la mémoire tampon de sortie partagée (pourcentage)

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

50%

31%

19%

Valeurs par défaut du pool de mémoires tampons dédié

Le système réserve des pools de mémoires tampons dédiés d’entrée et de sortie, qui sont répartis de manière égale entre les ports de commutation. Par défaut, le système alloue 100 % de l’espace tampon non réservé disponible au pool de mémoires tampons partagé. Si vous réduisez le pourcentage d’espace tampon non réservé disponible alloué au pool de mémoires tampons partagé, l’espace tampon non réservé restant est ajouté à l’allocation du pool de mémoires tampons dédiée. Vous configurez la quantité d’espace de mémoire tampon dédiée en réduisant (ou en augmentant) le pourcentage d’espace de mémoire tampon alloué au pool de mémoires tampons partagé. Vous ne configurez pas directement l’allocation du pool de mémoires tampons dédié.

Le Tableau 7 présente les valeurs par défaut des pools de mémoires tampons dédiés d’entrée et de sortie, en Ko, pour les commutateurs QFX5210, QFX5200, QFX5110, QFX5100, EX4600.

Tableau 7 : KB par défaut des pools de mémoires tampons dédiés entrants et sortants

Type de tampon dédié

QFX5210

QFX5200-48Y

QFX5110, QFX5200-32C

QFX5100, EX4600

Entrée

14040

3373.50

4860.38

2912.81

Sortie

15184

3412.50

5408

3744

Configuration de la mémoire tampon partagée recommandée pour différents scénarios de trafic réseau

La façon dont vous configurez le pool de mémoires tampons partagées dépend de la composition du trafic sur votre réseau. Cette section fournit des recommandations de configuration de mémoire tampon partagée pour cinq scénarios de trafic réseau de base :

  • Trafic équilibré : le réseau achemine un mélange équilibré de trafic unicast best effort, sans perte et multicast. (Il s’agit de la configuration par défaut.)

  • Trafic unicast best effort : le réseau achemine principalement du trafic unicast best effort.

  • Trafic best-effort avec Ethernet PAUSE (IEEE 802.3X) activé : le réseau achemine principalement le trafic best-effort avec Ethernet PAUSE activé sur les liaisons.

  • Trafic de multicast best effort : le réseau achemine principalement du trafic multicast best effort.

  • Trafic sans perte : le réseau transporte principalement du trafic sans perte (trafic sur lequel PFC est activé).

Remarque :

Le trafic sans perte est défini comme le trafic sur lequel vous activez PFC pour assurer un transport sans perte. Le trafic sans perte ne fait pas référence au trafic best effort sur une liaison sur laquelle vous activez Ethernet PAUSE. Commencez par utiliser les profils recommandés pour chaque scénario de trafic réseau et ajustez-les si nécessaire en fonction des conditions de trafic réseau.

MISE EN GARDE :

La modification de la configuration de la mémoire tampon est un événement perturbateur. Le trafic s’arrête sur tous les ports jusqu’à ce que la reprogrammation de la mémoire tampon soit terminée. Cela inclut la modification de la configuration par défaut pour l’une des configurations recommandées.

Étant donné que vous configurez les allocations de mémoire tampon en pourcentages, les allocations recommandées pour chaque scénario de trafic réseau sont valables pour tous les commutateurs QFX Series et EX4600. Utilisez l’une des configurations de mémoire tampon partagée recommandées suivantes pour vos conditions de trafic réseau. Commencez par une configuration recommandée, puis apportez de petits ajustements aux allocations de mémoire tampon pour affiner les tampons si nécessaire, comme décrit dans Optimisation de la configuration de tampon.

Trafic équilibré (configuration par défaut)

La configuration par défaut de la mémoire tampon partagée est optimisée pour les réseaux qui transportent une combinaison équilibrée de trafic unicast, sans perte et multidestination (échec de la recherche de multicast, de diffusion et de destination). La configuration par classe de service (CoS) par défaut est également optimisée pour les réseaux qui transportent un mélange équilibré de trafic.

Nous vous recommandons d’utiliser la configuration de mémoire tampon partagée par défaut pour les réseaux qui transportent un mélange équilibré de trafic, en particulier si vous utilisez les paramètres CoS par défaut. Le Tableau 8 présente les allocations par défaut de mémoire tampon partagée entrante :

Tableau 8 : configuration par défaut de la mémoire tampon partagée entrante

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

100%

9%

45%

46%

Le Tableau 9 présente les allocations de mémoire tampon partagée de sortie par défaut :

Tableau 9 : configuration par défaut de la mémoire tampon partagée de sortie

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

50%

31%

19%

Trafic unicast best effort

Si votre réseau transporte principalement du trafic unicast best effort (avec perte), la configuration par défaut de mémoire tampon partagée alloue trop d’espace tampon pour prendre en charge le transport sans perte. Au lieu de gaspiller ces mémoires tampons, nous vous recommandons d’utiliser les paramètres de mémoire tampon partagée d’entrée (voir le Tableau 10) et de mémoire tampon partagée de sortie (voir le Tableau 11) suivants :

Tableau 10 : configuration recommandée de la mémoire tampon partagée entrante pour les réseaux avec un trafic unicast majoritairement best effort

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

100%

5%

0%

95%

Tableau 11 : configuration recommandée de la mémoire tampon partagée de sortie pour les réseaux avec un trafic unicast majoritairement best effort

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

5%

75%

20%

Consultez Exemple : Configuration recommandée du pool de mémoire tampon partagée pour les réseaux avec un trafic unicast principalement best-effort pour obtenir un exemple qui vous montre comment configurer les paramètres de mémoire tampon recommandés indiqués dans les tableaux 10 et 11.

Trafic PAUSE Ethernet

Si votre réseau transporte principalement du trafic best effort (avec perte) et active Ethernet PAUSE sur les liaisons, la configuration par défaut de la mémoire tampon partagée alloue trop d’espace tampon à la mémoire tampon d’entrée partagée (le trafic Ethernet PAUSE utilise les tampons dédiés au lieu de tampons partagés) et pas assez d’espace aux tampons de marge de manœuvre sans perte. Nous vous recommandons d’utiliser les paramètres de mémoire tampon partagée d’entrée (voir le Tableau 12) et de mémoire tampon partagée de sortie (voir le Tableau 13) suivants :

Tableau 12 : configuration recommandée de la mémoire tampon partagée entrante pour les réseaux avec un trafic majoritairement best effort et avec une mise à jour Ethernet PAUSE

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

70%

5%

80%

15%

Tableau 13 : configuration recommandée de la mémoire tampon partagée de sortie pour les réseaux avec un trafic essentiellement best effort et avec une mise en pause Ethernet activée

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

5%

75%

20%

Voir Exemple : Configuration recommandée du pool de mémoires tampons partagées pour les réseaux avec un trafic principalement best-effort sur les liaisons avec Ethernet PAUSE activée pour obtenir un exemple qui vous montre comment configurer les paramètres de mémoire tampon recommandés indiqués dans les tableaux 10 et 11.

Trafic multicast (multidestination) best effort

Si votre réseau achemine principalement du trafic de multicast best effort (avec perte), la configuration par défaut de la mémoire tampon partagée alloue trop d’espace tampon pour prendre en charge le transport sans perte. Au lieu de gaspiller ces mémoires tampons, nous vous recommandons d’utiliser les paramètres de mémoire tampon partagée d’entrée (voir le Tableau 14) et de mémoire tampon partagée de sortie (voir le Tableau 15) suivants :

Tableau 14 : configuration recommandée de la mémoire tampon partagée entrante pour les réseaux dont le trafic multicast est essentiellement axé sur les meilleurs efforts

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

100%

5%

0%

95%

Tableau 15 : configuration recommandée de la mémoire tampon partagée de sortie pour les réseaux dont le trafic multicast est essentiellement axé sur les meilleurs efforts

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

5%

20%

75%

Consultez Exemple : Configuration recommandée du pool de mémoire tampon partagé pour les réseaux avec principalement du trafic multicast pour obtenir un exemple qui vous montre comment configurer les paramètres de mémoire tampon recommandés indiqués dans les tableaux 14 et 15.

Trafic sans perte

Si votre réseau transporte principalement du trafic sans perte, la configuration par défaut de la mémoire tampon partagée alloue trop d’espace tampon pour prendre en charge le trafic best effort. Au lieu de gaspiller ces mémoires tampons, nous vous recommandons d’utiliser les paramètres de mémoire tampon partagée d’entrée (voir le Tableau 16) et de mémoire tampon partagée de sortie suivants (voir le Tableau 17) :

Tableau 16 : configuration recommandée de la mémoire tampon partagée entrante pour les réseaux dont le trafic est généralement sans perte

Mémoire tampon entrante partagée totale

Tampon sans perte

Tampon sans perte de marge de manœuvre

Tampon avec perte

100%

15%

80%

5%

Tableau 17 : configuration recommandée de la mémoire tampon partagée de sortie pour les réseaux dont le trafic est généralement sans perte

Mémoire tampon de sortie partagée totale

Tampon sans perte

Tampon avec perte

Tampon multicast

100%

90%

5%

5%

Consultez Exemple : Configuration recommandée du pool de mémoire tampon partagé pour les réseaux avec un trafic principalement sans perte pour obtenir un exemple qui vous montre comment configurer les paramètres de mémoire tampon recommandés indiqués dans les tableaux 16 et 17.

Optimisation de la configuration de la mémoire tampon

En partant de la configuration par défaut ou d’une configuration de mémoire tampon recommandée, vous pouvez optimiser davantage l’allocation de la mémoire tampon afin de mieux prendre en charge la combinaison de trafic sur votre réseau. Ajustez progressivement les paramètres pour affiner l’allocation de la mémoire tampon partagée. Soyez prudent lorsque vous ajustez la configuration de la mémoire tampon partagée, non seulement lorsque vous ajustez les partitions de mémoire tampon d’entrée et de sortie, mais également lorsque vous affinez le pourcentage total de mémoire tampon partagée d’entrée et de sortie. (N’oubliez pas que si vous allouez moins de 100 % des tampons disponibles aux tampons partagés, les tampons restants sont ajoutés aux tampons dédiés). Un réglage incorrect des mémoires tampons peut entraîner des problèmes tels que la congestion des ports entrants.

MISE EN GARDE :

La modification de la configuration de la mémoire tampon est un événement perturbateur. Le trafic s’arrête sur tous les ports jusqu’à ce que la reprogrammation de la mémoire tampon soit terminée.

La relation entre la taille du pool de mémoires tampons d’entrée et du pool de mémoires tampons de sortie affecte le moment et l’endroit où les paquets sont perdus. Les tailles des pools de mémoires tampons incluent les mémoires tampons partagées et les mémoires tampons dédiées. En général, s’il y a plus de tampons entrants que de tampons de sortie, le commutateur peut rencontrer une congestion des ports entrants, car les files d’attente de sortie se remplissent avant que les files d’attente entrantes ne puissent se vider.

Utilisez la show class-of-service shared-buffer commande opérationnelle pour voir les tailles en kilo-octets (Ko) des mémoires tampons dédiées et partagées et des partitions de mémoire tampon partagées.

Pour le trafic best effort (unicast et multidestination), la partition de mémoire tampon partagée avec perte d’entrée et les mémoires tampons dédiées d’entrée combinées doit être inférieure aux partitions de mémoire tampon partagées avec perte de sortie et de multicast combinées et aux mémoires tampons dédiées de sortie. Cela permet d’éviter la congestion des ports entrants en veillant à ce que les tampons de sortie best effort soient plus profonds que les tampons entrants best effort, et en garantissant que si des paquets sont abandonnés, ils le sont dans les files d’attente de sortie. (Les paquets abandonnés à l’entrée empêchent les planificateurs de sortie de fonctionner correctement.)

Pour le trafic sans perte (trafic sur lequel vous activez PFC), la partition de mémoire tampon partagée d’entrée sans perte et une partie raisonnable de la partition de mémoire tampon de marge d’entrée, plus les mémoires tampons dédiées, doivent être inférieures au total de la partition de mémoire tampon partagée sans perte sortie et des mémoires tampon dédiées. (Une partie raisonnable de la mémoire tampon entrante représente environ 20 à 25 % de l’espace tampon, mais cela varie en fonction de la marge de tampon nécessaire pour prendre en charge le trafic sans perte.) Lorsque ces conditions sont remplies, en cas de congestion des ports entrants, la congestion des ports entrants déclenche un PFC sur le port entrant pour éviter la perte de paquets. Si le nombre total de tampons d’entrée sans perte dépasse le nombre total de tampons de sortie sans perte, les paquets peuvent être abandonnés à la sortie au lieu d’appliquer le PFC à l’entrée pour éviter la perte de paquets.

Remarque :

Si vous validez une configuration de mémoire tampon pour laquelle le commutateur ne dispose pas de ressources suffisantes, le commutateur peut enregistrer une erreur au lieu de renvoyer une erreur de validation. Dans ce cas, un message syslog s’affiche sur la console. Par exemple :

Si la configuration de la mémoire tampon est validée mais que vous recevez un message syslog indiquant que la configuration ne peut pas être implémentée, vous pouvez :

  • Reconfigurez les mémoires tampons ou reconfigurez d’autres paramètres (par exemple, la configuration PFC, qui affecte le besoin de tampons de marge et de tampons sans perte sans perte - plus vous mettez de priorités en pause, plus vous avez besoin d’espace tampon de marge sans perte et sans perte), puis retentez l’opération de validation.

  • Réinitialisez le commutateur jusqu’à la dernière configuration réussie.

Si vous recevez un message syslog indiquant que la configuration de la mémoire tampon ne peut pas être implémentée, vous devez prendre des mesures correctives. Si vous ne corrigez pas la configuration ou ne revenez pas à une configuration précédente réussie, le comportement du système est imprévisible.

Règles et considérations générales de configuration de la mémoire tampon

Gardez à l’esprit les règles et considérations suivantes lorsque vous configurez les tampons :

  • La modification de la configuration de la mémoire tampon est un événement perturbateur. Le trafic s’arrête sur tous les ports jusqu’à ce que la reprogrammation de la mémoire tampon soit terminée.

  • Si vous configurez les pourcentages de mémoire tampon partagée d’entrée ou de sortie comme inférieurs à 100 %, le pourcentage restant d’espace tampon est ajouté au pool de mémoires tampon dédié.

  • La somme de toutes les partitions de mémoire tampon partagée entrante doit être égale à 100 %. Chaque partition doit être configurée avec une valeur d’au moins 5 %, à l’exception de la mémoire tampon de marge sans perte, qui peut avoir une valeur de 0 %.

  • La somme de toutes les partitions de mémoire tampon partagée de sortie doit être égale à 100 %. Chaque partition doit être configurée avec une valeur d’au moins 5 %.

  • Les mémoires tampons partagées sans perte et sans perte servent le trafic sur lequel vous activez PFC, et ne servent pas le trafic soumis à Ethernet PAUSE.

  • Le commutateur utilise d’abord le pool de mémoires tampons dédié et le pool de mémoires tampons partagées uniquement lorsque le pool de mémoires tampons dédié à un port ou à une file d’attente est épuisé.

  • Trop peu d’espace tampon dédié entraîne une concurrence trop importante pour l’espace tampon partagé.

  • Un espace tampon dédié trop important entraîne une absorption plus faible des rafales, car il y a moins d’espace tampon partagé disponible.

  • Vérifiez toujours les messages syslog après avoir validé une nouvelle configuration de tampon.

  • La configuration optimale de la mémoire tampon pour votre réseau dépend des types de trafic qui s’y trouvent. Si votre réseau transporte moins de trafic d’un certain type (par exemple, sans perte trafic), vous pouvez réduire la taille des mémoires tampons allouées à ce type de trafic (par exemple, vous pouvez réduire les tailles des mémoires tampons sans perte et sans perte la marge de manœuvre).

Comportement de la mémoire tampon spécifique à la plate-forme

Utilisez le tableau suivant pour passer en revue les comportements spécifiques à la plate-forme pour vos plates-formes.

Tableau 18 : comportement de la mémoire tampon spécifique à la plate-forme

Plate-forme

Différence

QFX5000 Series

  • Sur toutes les plates-formes QFX5000, lors du calcul de l’allocation de mémoire tampon dédiée aux files d’attente, le logiciel arrondit toute valeur de mémoire tampon dédiée fractionnaire à l’entier complet inférieur le plus proche et programme cette valeur dans le matériel pour éviter la surallocation. Après avoir alloué des tampons dédiés à toutes les files d’attente configurées, toutes les plateformes QFX5000 allouent tout espace tampon dédié de port inutilisé à la première file d’attente configurée.

  • Le modèle QFX5200-32C ne réplique pas tous les flux de multicast lorsque la taille de paquet de l’interface en aval ou plus est supérieure à ~6 Ko et que le taux d’entrée des paquets est de 1000 pps. En effet, le nombre de flux de travail sur le QFX5200-32C est indirectement proportionnel à la taille du paquet et directement proportionnel aux tampons partagés de multicast disponibles.

Série QFX10000

  • Les commutateurs QFX10000 Series ne disposent pas d’une mémoire tampon partagée.

QFX Virtual Chassis et EX4600/EX4650 Virtual Chassis

  • Sur un Virtual Chassis QFX et un Virtual Chassis EX4600/EX4650, la valeur minimale de la marge de sans perte tampon est de 3 %.