Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment prévoir l'allocation de tampon de file d'attente aux files d'attente de trafic sur les commutateurs de la gamme Catalyst 9000.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
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.
Ce document peut également être utilisé avec les versions de matériel et de logiciel suivantes :
Remarque : ce document ne s'applique pas aux modèles 9500X ou 9600X, car ils utilisent une architecture ASIC et QoS différente.
Pour une présentation technique de la QoS sur les commutateurs de la gamme Catalyst 9000, voir : Livre blanc sur la QoS et la mise en file d'attente de Catalyst 9000.
Souvent, l'allocation de mémoire tampon doit être réglée en réponse à des pertes de sortie indésirables pour une classe particulière de trafic. Pour plus d'informations sur la façon de diagnostiquer et de dépanner les pertes de sortie sur les commutateurs de la gamme Catalyst 9000, consultez cet article : Dépannage des pertes de sortie sur les commutateurs Catalyst 9000
QoS |
Qualité de service |
Concept/groupe de fonctionnalités associées permettant de classer, de marquer, de mettre en file d'attente et de planifier le trafic entrant et sortant d'un périphérique réseau |
DSCP |
Point de code de services différenciés |
Mécanisme de classification du trafic contenu dans l’en-tête IP d’un paquet |
CoS |
Classe de service |
Mécanisme de classification du trafic contenu dans l’en-tête de trame Ethernet d’un paquet |
AS |
Entrée de contrôle d'accès |
Une seule règle ou ligne dans une liste de contrôle d'accès (ACL) |
ACL |
liste de contrôle d'accès |
Groupe d'entrées de contrôle d'accès (ACE) utilisées par diverses fonctionnalités pour faire correspondre le trafic et effectuer une action |
ASIC |
Circuit Intégré Spécifique À Une Application |
Puce informatique conçue pour exécuter une tâche spécifique ou un ensemble de tâches avec une grande efficacité. |
UADP |
Plan de données Unified Access |
Cisco ASIC est utilisé dans les commutateurs de la gamme Catalyst 9000 pour effectuer de nombreuses tâches de traitement de paquets réseau. |
PBC |
Complexe de tampons de paquets |
Sous-système Cisco UADP ASIC qui sert de tampon de paquets central pour traiter, mettre en file d'attente et programmer les paquets. |
MOQ |
Gestion active des files d'attente |
Sous-système Cisco UADP ASIC qui gère la file d'attente du trafic et planifie les actions pour les ports réseau. |
DTS |
Seuil dynamique et évolutivité |
Technologie Cisco UADP ASIC qui ajuste et fait évoluer dynamiquement les tampons sur les ports pour optimiser l'utilisation du matériel |
En tant que concept, les tampons sont de la mémoire utilisée pour absorber des rafales de données transitoires, lorsque les données commutées ou routées vers un port dépassent la capacité de ces ports à placer des données sur le câble. Un port a un débit fixe auquel il transmet et supprime des données de la file d'attente. Un tampon, conceptuellement, est simplement un endroit pour stocker, ou mettre en file d'attente, des données jusqu'à ce qu'elles soient transmises hors de l'interface.
Sur les commutateurs de la gamme Catalyst 9000, le mot « tampon » a deux utilisations. Le tampon système dans son ensemble est également appelé PBC (Packet Buffer Complex) de l'ASIC. Les tampons de mots peuvent également faire référence à une petite unité du PBC. Une mémoire tampon est allouée aux ports par file d'attente. En d'autres termes, une file d'attente de port se voit attribuer une quantité de petites mémoires tampon individuelles à partir de la mémoire tampon système globale.
Sur les plates-formes basées sur Cisco UADP ASIC, une mémoire tampon contient jusqu'à 256 octets de données, et les mémoires tampons sont reliées pour représenter les trames supérieures à 256 octets.
Le calcul final de la mémoire tampon disponible par file d'attente est influencé par les facteurs suivants :
Les tampons logiciels sont des tampons partagés entre plusieurs ports. Ces tampons sont appelés « soft » car ils ne sont pas garantis pour le port.
Le système suralloue intentionnellement des tampons logiciels. Cela permet à n'importe quel port d'utiliser un grand nombre de tampons si nécessaire, mais comme de plus en plus de ports ont besoin de tampons, tous les ports et les files d'attente sont réduits dynamiquement et équitablement dans le cadre du processus Cisco UADP ASIC DTS.
En résumé, les tampons logiciels - appelés softmax dans les résultats, sont une valeur maximale opportuniste. Un port utilise la valeur softmax complète uniquement si cette quantité de mémoire tampon est disponible dans la mémoire tampon système globale. À mesure que la demande de mémoire tampon augmente sur les autres ports et files d'attente, la mémoire tampon maximale disponible pour le port est inférieure.
Les tampons durs sont des tampons explicitement réservés à un port et ne sont pas affectés par le processus DTS. Comme les tampons durs sont des tampons garantis, la somme totale des tampons durs alloués aux ports ne dépasse jamais le segment PBC dédié à ces tampons durs.
Les mécanismes qui régissent l'échelle active de la mémoire tampon logicielle sont connus sous le nom de DTS (Dynamic Threshold and Scale), décrit dans le Livre blanc sur la qualité de service de la gamme Catalyst 9000.
La taille des segments PBC dédiés aux tampons matériels et logiciels de la file d'attente change de façon dynamique lorsque vous configurez le système et peut être vue comme AQM GlobalSoftLimit et GlobalHardLimit dans cette sortie :
C9500#show platform hardware fed active qos queue stats interface twe1/0/1
----------------------------------------------------------------------------------------------
AQM Global counters
GlobalHardLimit: 18072 | GlobalHardBufCount: 0
GlobalSoftLimit: 37224 | GlobalSoftBufCount: 0
C9500#show platform hardware fed active qos queue config interface tw1/0/1 Asic:0 Core:1 DATA Port:20 GPN:101 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 160 - 167 DrainFast:Disabled PortSoftStart:2 - 4320 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 2 480 3 1920 16 960 0 0 4 5760 En <--- default configuration has a mix of hard buffer and soft buffer in queue 0 1 1 0 0 4 2880 16 1440 8 720 4 5760 En <--- default configuration has two queues so some buffers are seen in queue 1
<snip>
C9500(config)#policy-map test
C9500(config-pmap)#class class-default
C9500(config-pmap-c)#priority level 1 <--- Priority level 1 queue configuration on first queue, which is queue 0 in the next output
C9500(config-pmap-c)#exit
C9500(config-pmap)#exit
C9500(config)#int tw1/0/1
C9500(config-if)#service-policy output test
C9500(config-if)#end
C9500#show platform hardware fed active qos queue config interface twe1/0/1
Asic:0 Core:1 DATA Port:20 GPN:101 LinkSpeed:0x12
AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 160 - 167
DrainFast:Disabled PortSoftStart:4 - 1800 BufferSharing:Disabled
DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable
----- -------- -------- -------- -------- --------- -------
0 1 4 1200 7 1200 0 0 0 0 3 2400 En <--- Hardmax increased to 1200 from 480 in queue 0, softmax reduced to 1200 from 1920
1 1 0 0 0 0 0 0 0 0 3 2400 En <--- queue 1 now no longer has any values, as no second queue is configured
C9500#show platform hardware fed active qos queue stats interface twe1/0/1
----------------------------------------------------------------------------------------------
AQM Global counters
GlobalHardLimit: 18792 | GlobalHardBufCount: 0 <--- GlobalHardLimit increased to 18792 from 18072, or by 720
GlobalSoftLimit: 36504 | GlobalSoftBufCount: 0 <--- GlobalSoftLimit decreased from 37224 to 36504, or by 720
Remarque : notez l'augmentation de GlobalHardLimit et la diminution proportionnelle de GlobalSoftLimit.
De plus, quand vous configurez le niveau de priorité 1, softmax pour cette file d'attente est statiquement défini pour être exactement égal à hardmax. Vous ne pouvez modifier le tampon dur que pour une file d'attente de niveau de priorité 1.
La modification dans GlobalHardLimit et GlobalSoftLimit est égale à 720. Cela équivaut également au changement de hardmax après la configuration.
Les scénarios de ce document expliquent comment calculer et prédire les allocations softmax et hardmax sur plusieurs configurations policy-map.
Une valeur de tampon finale de files d'attente est en partie une fonction d'une valeur de base qui est d'abord allouée à travers des files d'attente. Cette valeur est ensuite multipliée dans le cas des mémoires tampons souples.
Les facteurs de multiplication, en combinaison avec d'autres comportements implicites, font de la détermination d'une valeur finale pour une file d'attente donnée, avec une configuration donnée, un challenge.
La première étape pour clarifier l'allocation de tampon de file d'attente résultante consiste à déterminer la valeur de tampon de base.
Pour ce faire, utilisez une file d'attente prioritaire, qui reçoit une mémoire tampon matérielle directement proportionnelle au nombre de files d'attente ou au rapport file d'attente-tampons configuré.
Avec une configuration spécifique, vous pouvez dériver explicitement la quantité de mémoire tampon de base allouée à une vitesse de port donnée.
Configurez et affectez toute la mémoire tampon à une seule file d'attente non multipliée (une file d'attente de niveau de priorité 1)
Dans cet exemple, la classe par défaut de la classe est utilisée pour faire correspondre tout le trafic, car aucune autre classe n'est configurée.
Switch(config)#policy-map test1
Switch(config-pmap)#class class-default
Switch(config-pmap-c)#priority level 1 <--- Assign hard buffer to the port, which is not affected by multipliers
Switch(config-pmap-c)#queue-buffers ratio 100 <--- Assign all buffers to this queue only
La configuration de l'exemple précédent exécute les actions suivantes :
Le rapport de tampons de file d'attente 100 alloue 100/100 ou 100 % de tampon de base disponible à cette file d'attente/classe.
Dans un policy-map avec plus d'une classe, vous ne pouvez pas allouer 100% de la mémoire tampon à une seule classe. Vous devez allouer 1/100 ou 1 % au minimum à n'importe quelle classe.
Dans une stratégie avec une seule classe, vous n'avez qu'une seule classe et vous pouvez lui allouer toute la mémoire tampon.
Comme indiqué précédemment, une file d'attente prioritaire obtient des tampons durs égaux à sa distribution de tampon de base selon le rapport file d'attente-tampons configuré. Un tampon dur n'est soumis à aucun multiplicateur.
Une mémoire tampon dure est observée dans les sorties sous une colonne intitulée Hardmax.
Maintenant, vous avez une seule classe de trafic avec des tampons non soumis à aucun multiplicateur. Avec cela, vous pouvez explicitement dériver l'allocation de tampon de base pour cette vitesse de port (et seulement cette vitesse de port sur cette plate-forme, les autres diffèrent), parce que le tampon de base et hardmax sont égaux.
Tampon de base = ?
Taux de files d'attente 1 = 100/100 = 1
Hardmax pour cette file d'attente = Tampon de base x Ratio de files d'attente 1
X = Y x 1
X / 1 = Y
X = Y
X = Y = Hardmax = tampon de base = 1200 (voir exemple 2).
Dans cet exemple, policy-map test1 est appliqué à une interface en tant que service-policy de sortie
9500H(config)#int tw1/0/3
9500H(config-if)#service-policy output test1 <--- service policy that assigns all buffer to the first queue, as a priority queue 1
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:4 - 1800 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 4 1200 7 1200 0 0 0 0 3 2400 En <--- hardmax 1200 - the maximum amount of buffer this port can use without multiplication 1 1 0 0 0 0 0 0 0 0 3 2400 En 2 1 0 0 0 0 0 0 0 0 3 2400 En 3 1 0 0 0 0 0 0 0 0 3 2400 En 4 1 0 0 0 0 0 0 0 0 3 2400 En 5 1 0 0 0 0 0 0 0 0 3 2400 En 6 1 0 0 0 0 0 0 0 0 3 2400 En 7 1 0 0 0 0 0 0 0 0 3 2400 En
<snip>
Comme indiqué, la valeur hardmax pour cette file d'attente prioritaire avec 100 % de la mémoire tampon qui lui est allouée est 1200.
Étant donné que hardmax est une valeur non multipliée/non mise à l'échelle et que 100 % de la mémoire tampon est configurée pour cette file d'attente, l'allocation de mémoire tampon de base pour ce modèle spécifique de commutateur, de version logicielle et de vitesse de port spécifique est de 1 200.
D'autres vitesses de port sur ce même commutateur, et d'autres modèles de commutateurs pour la même vitesse de port, reçoivent différentes allocations de tampon de base. Cette allocation de base n'est pas configurable par l'utilisateur et doit être calculée par observation.
D'autres scénarios de ce document commencent tous par utiliser le même commutateur, le même logiciel et la même vitesse de port. Ainsi, ils supposent tous une allocation de base de 1200 pour les calculs visant à déterminer l'allocation de tampon finale.
Remarque : notez que la valeur softmax de l'exemple précédent est également 1200.
Par conception, une file d'attente de niveau de priorité 1 a softmax exactement égal à son hardmax. Ceci est prévu et non configurable par l'utilisateur.
De plus, ce cas spécifique d'allocation softmax n'est pas affecté par les multiplicateurs softmax montrés plus loin. Seule une file d'attente de niveau de priorité 1 a ce comportement pour softmax, qui est prévu.
Dans ce scénario, une file d'attente supplémentaire est ajoutée. Cette file d'attente n'utilise pas le niveau de priorité 1, et donc softmax évolue avec des multiplicateurs.
Un multiplicateur est configuré par l'utilisateur et l'autre un multiplicateur masqué / non configurable.
Combinez ces multiplicateurs avec la mémoire tampon de base dérivée pour ce port, dans ce cas 1200 selon le Scénario 1.
Algorithmiquement :
Taux de file d'attente actuel = taux de tampons de file d'attente pour la file d'attente / classe à prévoir
Multiplicateur masqué = 400 %
Multiplicateur utilisateur = Pourcentage de valeur que vous configurez dans qos queue-softmax-multiplicateur <percent>. Le défaut est 100%
Softmax = ( Tampon de base x (Rapport de files d'attente actuel / 100)) x Multiplicateur masqué x (Multiplicateur utilisateur / 100)
9500H(config)#policy-map test2
9500H(config-pmap)# class class1
9500H(config-pmap-c)# priority level 1
9500H(config-pmap-c)# queue-buffers ratio 50 <-- class 1 / first queue gets 50% of base buffer
9500H(config-pmap-c)# class class-default
9500H(config-pmap-c)# bandwidth remaining percent 100 <-- required configuration due to priority queue, can be ignored for this example
9500H(config-pmap-c)# queue-buffers ratio 50 <-- class 2 / first queue gets 50% of base buffer
Résumé des valeurs :
Déterminez l'allocation de tampon Class1 :
Comme class1 est une file d'attente prioritaire, il reçoit hardmax (hard buffer), et un cas spécial de softmax non affecté par les multiplicateurs.
Classe1 hardmax = (Tampon de base x Rapport de files d'attente actuel(classe1) / 100)
Class1 hardmax = 1200 x (50/100) = 600 - en raison d'un cas particulier d'une file d'attente prioritaire, arrêtez toutes les mathématiques, attribuez votre résultat à hardmax. Softmax est égal à Hardmax en règle générale pour le niveau de priorité 1.
Déterminez l'allocation de tampon par défaut de classe :
Classe class-default = (Base Buffer x (Current Queue Ratio (class-default / 100)) x Multiplicateur masqué x (User Multiplier / 100)
Classe class-default = [
[tampon de base] 1 200 x [ratio de file d'attente actuel] (50/100) = 600
[résultat précédent] 600 x [Multiplicateur masqué] 4 x [Multiplicateur utilisateur] (100/100) = 2400
]
9500H(config)#int tw1/0/3
9500H(config-if)#service-policy output test2 <-- apply the policy
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 3600 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 9 600 0 0 0 0 1 4800 En <-- Hardmax is 600 as predicted, Softmax is set equal to Hardmax due to priority level 1 1 1 0 0 10 2400 16 1200 8 600 1 4800 En <-- Softmax is 2400 as predicted
<snip>
Résultat final : Q0 - Hardmax : 600 Softmax : 600. T1 - Softmax : 2 400
Ce scénario démarre de la même manière que le scénario 2, sauf que maintenant vous configurez qos queue-softmax-multiplicateur 1200.
Cela multiplie les tampons softmax dans la configuration actuelle par 1200 %, soit un facteur de 12.
Résumé des valeurs :
Déterminez l'allocation de tampon Class1 :
Comme class1 est une file d'attente prioritaire, il reçoit hardmax (hard buffer), et un cas spécial de softmax non affecté par les multiplicateurs.
Classe1 hardmax = (Tampon de base x Rapport de files d'attente actuel(classe1) / 100)
Class1 hardmax = 1200 x (50/100) = 600 - en raison d'un cas particulier d'une file d'attente prioritaire, arrêtez toutes les mathématiques, attribuez votre résultat à hardmax. Softmax est égal à Hardmax en règle générale pour le niveau de priorité 1.
Déterminez l'allocation de tampon par défaut de classe :
Classe class-default = (Base Buffer x (Current Queue Ratio (class-default / 100)) x Multiplicateur masqué x (User Multiplier / 100)
Classe class-default =[
[tampon de base] 1 200 x [ratio de file d'attente actuel] (50/100) = 600
[résultat précédent] 600 x [Multiplicateur masqué] 4 x [Multiplicateur utilisateur] (1200/100) = 28800
]
Configurez qos queue-softmax-multiplicateur 1200 et observez les modifications apportées à softmax (softmax est une valeur de tampon maximale pour cette file d'attente, mise à l'échelle dynamiquement en fonction de l'utilisation globale actuelle de la mémoire tampon) :
9500H(config)#qos queue-softmax-multiplier 1200
9500H#show platform hardware fed active qos queue config interface tw1/0/3
Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:3 - 31500 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 5 600 0 0 0 0 6 42000 En <-- Queue 0 does not change as its configured with priority level 1 1 1 0 0 6 28800 1 900 1 900 6 42000 En <-- Softmax increases by 12x to 28800 from 1200 due to queue-softmax-multiplier 1200
<snip>
Résultat final : T1 - Hardmax : 600, Softmax : 600. Q2 - Softmax : 28800
Dans ce scénario, cinq files d'attente sont configurées, mais seulement quatre ont un rapport de tampons de file d'attente explicitement défini. La mémoire tampon allouée à ces files d'attente est la même que dans les exemples précédents.
La file d'attente qui n'est pas configurée reçoit la différence entre la somme de toutes les mémoires tampon de file d'attente configurées et 100.
Somme des ratios explicitement configurés = (ratio de tampon Q0) + (ratio de tampon Q1) ... (ratio de tampon final) - jusqu'à 8 files d'attente sont prises en charge sur les commutateurs de la gamme Catalyst 9000, vous pouvez donc ajouter jusqu'à 8 ratios
Reste de ratio implicite = (100 - Somme des ratios explicitement configurés).
Le Reste de rapport implicite est la valeur qui est attribuée à une file d'attente qui n'a pas de rapport file d'attente-tampons configuré.
Policy-map en cours d'utilisation pour ce scénario :
9500H(config)#policy-map test3
9500H(config-pmap)# class class1
9500H(config-pmap-c)# priority level 1
9500H(config-pmap-c)# queue-buffers ratio 20
9500H(config-pmap-c)# class class2
9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class
9500H(config-pmap-c)# class class3
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10 <-- rest of queues have an explicit queue-buffers ratio
9500H(config-pmap-c)# class class4
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class-default
9500H(config-pmap-c)# bandwidth remaining percent 70
9500H(config-pmap-c)# queue-buffers ratio 40
Résumé des valeurs :
Calculez le taux de tampon de file d'attente restant :
Reste de ratio implicite = (100 - Somme des ratios explicitement configurés).
10 - (20) - (10) - (10) - (50) = 20
Rapport de files d'attente actuel(class2) = 20
Calculer l'allocation de tampon de file finale
Class1 = [Base Buffer] 1200 x [Current Queue Ratio(class1)] (20/100) = 240 - file d'attente prioritaire, aucun autre calcul
Classe 2 = [
[Base Buffer] 1 200 x [Current Queue Ratio(class2)] (10/100) = 240 - allocation de tampon de base pour cette file d'attente, mais elle doit être multipliée pour obtenir softmax pour une file d'attente non prioritaire
[Allocation de mémoire tampon de base pour cette file d'attente] 120 x [Multiplicateur masqué] 4 x [Multiplicateur utilisateur] (100/100) = 960
]
Répétez pour les files d'attente restantes :
Classe 3 = [
1 200 x (10/100) = 120
120 x 4 x 100/100 = 480
]
Classe 4 = [
1 200 x (10/100) = 120
120 x 4 x 100/100 = 480
]
Classe class-default = [
1 200 x (40/100) = 480
600 x 4 x (100/100) = 1 920
]
Résultat du policy-map test3 appliqué par rapport à la prédiction :
9500H(config)#int tw1/0/3
9500H(config-if)#service-policy output test3
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:4 - 2880 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 240 8 240 0 0 0 0 6 3840 En 1 1 0 0 9 960 16 480 8 240 6 3840 En <-- queue without queue buffers ratio configured receives any leftover ratio, as predicted 2 1 0 0 11 480 16 240 8 120 6 3840 En 3 1 0 0 11 480 16 240 8 120 6 3840 En 4 1 0 0 4 1920 16 960 8 480 6 3840 En
<snip>
Résultat final : Q0 - Hardmax : 240, Softmax : 240. Q1 - Softmax : 960, Q2 - Softmax : 480, Q3 - Softmax : 480, Q4 - Softmax : 480
Dans ce scénario, cinq files d'attente sont configurées et deux files d'attente n'ont pas de rapport de tampons de file d'attente configuré.
Pour déterminer l'allocation de mémoire tampon, la même logique du scénario 2 continue, mais vous devez également diviser le reste de rapport implicite par le nombre total de files d'attente implicites / files d'attente qui n'ont pas de rapport de tampons de file d'attente
Policy-map en cours d'utilisation pour ce scénario :
9500H(config)#policy-map test4
9500H(config-pmap)# class class1
9500H(config-pmap-c)# priority level 1
9500H(config-pmap-c)# queue-buffers ratio 20
9500H(config-pmap-c)# class class2
9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class
9500H(config-pmap-c)# class class3
9500H(config-pmap-c)# bandwidth remaining percent 10 <-- no queue-buffers ratio statement for this class
9500H(config-pmap-c)# class class4
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class-default
9500H(config-pmap-c)# bandwidth remaining percent 70
9500H(config-pmap-c)# queue-buffers ratio 40
Résumé des valeurs :
Calculez le taux de tampon de file d'attente restant :
Reste de ratio implicite = (100 - Somme des ratios explicitement configurés).
Nombre de files d'attente implicites = 2 (les classes 2 et 3 n'ont pas de rapport de tampons de file d'attente défini)
Somme des ratios configurés = 20+40+10 = 7
Taux implicite restant = 100 - 70 = 30
Allocation implicite du taux de files d'attente = [Taux implicite restant] 30 / [Nombre de files d'attente implicites] 2 = 15
Calculer l'allocation finale de tampon de file :
Classe 1 =
[Base Buffer] 1 200 x [Current Queue Ratio(class1)] (20/100) = 240 - file d'attente prioritaire, aucun autre calcul
Classe 2 =
[Base Buffer] 1200 x [Implicit queue ratio allocation] (15/100) = 180 - Comme la classe 2 n'a pas de queue-buffers ratio défini, le reste du rapport queue-buffers des files d'attente explicites est partagé entre les files d'attente implicites.
[Allocation de mémoire tampon de base pour cette file d'attente] 180 x [Multiplicateur masqué] 4 x [Multiplicateur utilisateur] (100/100) = 720
Répétez pour les files d'attente restantes :
Classe 3 = [
1 200 x (15/100) = 180
120 x 4 x 100/100 = 720
]
Classe 4 = [
1 200 x (10/100) = 120
120 x 4 x 100/100 = 480
]
Classe class-default = [
1 200 x (40/100) = 480
600 x 4 x (100/100) = 1 920
]
Résultat du policy-map test4 appliqué comparé à la prédiction :
9500H(config)#interface tw1/0/3
9500H(config-if)#service-policy output test4
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:4 - 2880 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 240 8 240 0 0 0 0 6 3840 En 1 1 0 0 9 720 16 360 8 180 6 3840 En <-- queue 1 and 2 were not configured with queue-buffers ratio 2 1 0 0 9 720 16 360 8 180 6 3840 En <-- queue 1 and 2 get an equal share of leftover buffer ratio 3 1 0 0 11 480 16 240 8 120 6 3840 En 4 1 0 0 4 1920 16 960 8 480 6 3840 En
<snip>
Remarque : si le résultat de l'allocation implicite du rapport de files d'attente n'est pas un entier, une part égale n'est pas possible. Le résultat arrondit pour les files d'attente plus tôt dans le mappage de stratégie et arrondit pour les files d'attente plus tard. La somme finale du rapport de tampons de file d'attente alloué reste de 100, mais les files d'attente implicites n'obtiennent pas toujours une allocation égale en raison de la condition de résultat entier qui vient d'être décrite.
Dans ce scénario, cinq files d'attente sont configurées, toutes avec un rapport de tampons de file d'attente. La somme totale du rapport file d'attente-tampons dans les classes est inférieure à 100.
Dans ce cas, le taux de mémoire tampon non allouée est réparti uniformément entre les classes.
Comme dans le scénario précédent, si le résultat divisé du rapport de tampons de file d'attente restants n'est pas un entier, l'allocation finale à chaque file d'attente est arrondie vers le haut ou vers le bas et ajoutée au rapport de tampons de file d'attente que vous avez configuré.
Policy-map en cours d'utilisation pour ce scénario :
9500H(config)#policy-map test5
9500H(config-pmap)# class class1
9500H(config-pmap-c)# priority level 1
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class2
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class3
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class4
9500H(config-pmap-c)# bandwidth remaining percent 10
9500H(config-pmap-c)# queue-buffers ratio 10
9500H(config-pmap-c)# class class-default
9500H(config-pmap-c)# bandwidth remaining percent 70
9500H(config-pmap-c)# queue-buffers ratio 12
Résumé des valeurs :
Somme des ratios configurés = 10 + 10 + 10 + 10 + 12 = 52
Taux de mémoire tampon restant = 100 % - 52 % = 48 %
[Taux de mémoire tampon restant] 48 % / [Nombre total de files d'attente] 5 = 9,6 % ajoutés par file d'attente - Il ne s'agit pas d'un nombre entier. Son application finale aux files d'attente doit donc être arrondie à la hausse ou à la baisse par file d'attente
Pour obtenir le nombre final de tampons de file d'attente que le système utilise, vous devez ajouter 9 ou 10 au rapport de tampons de file d'attente déjà configuré.
Les classes situées plus haut dans la carte de stratégie reçoivent la valeur arrondie, 10. Les classes inférieures dans la carte de stratégie reçoivent la valeur arrondie, 9.
Calculer l'allocation de tampon de file finale
Taux de mémoire tampon restant = 48
Classe1 = [Tampon de base] x ([Rapport de files d'attente actuel(classe1) + Valeur arrondie du rapport de tampons partagés restant)]
Classe 1 = 1 200 x ((10 % + 10 %)/100) = 240 - file d'attente prioritaire, aucun autre calcul
Taux de mémoire tampon restant = (48 - 10) = 38
Classe2 = [Tampon de base] x ([Taux de file d'attente actuel(classe2) + Valeur arrondie du taux de tampon partagé restant)]
Class2 = 1200 x ((10% + 10%)/100) = 240 - Continuez à multiplier ce nombre par multiplicateurs utilisateur et système, car il ne s'agit pas d'une file d'attente prioritaire
Class2 = [Allocation de mémoire tampon de base pour cette file d'attente] 240 x [Multiplicateur masqué] 4 x [Multiplicateur utilisateur] (100/100) = 960 - résultat softmax pour cette file d'attente
Taux de mémoire tampon restant = (38 - 10) - 28
Répétez pour les files d'attente restantes :
Classe 3 = [
1 200 x (10+10)/100) = 240
120 x 4 x 100/100 = 960
]
Taux de mémoire tampon restant = (28 - 10) = 18
Classe 4 = [
1 200 x (10+9)/100) = 240
120 x 4 x 100/100 = 912
]
Taux de mémoire tampon restant = 9
Classe class-default= [
1 200 x (12+9)/100) = 252
120 x 4 x (100/100) = 1008
]
Taux de mémoire tampon restant = 0
Résultat de la carte de stratégie test5 appliquée par rapport à la prédiction :
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 1512 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 240 9 240 0 0 0 0 6 2016 En 1 1 0 0 10 960 16 480 8 240 6 2016 En 2 1 0 0 10 960 16 480 8 240 6 2016 En 3 1 0 0 11 912 16 456 8 228 6 2016 En 4 1 0 0 12 1008 16 504 8 252 6 2016 En
<snip>
Dans ce scénario, une classe dans un policy-map est configurée avec le niveau de priorité 2.
Contrairement au niveau de priorité 1, dans lequel softmax n'est pas affecté par les multiplicateurs et est défini égal à hardmax, le niveau de priorité 2 permet à softmax d'être multiplié alors qu'il a également une allocation de tampon dur (hardmax).
Policy-map en cours d'utilisation pour ce scénario :
9500H(config)#policy-map test6
9500H(config-pmap)#class class1
9500H(config-pmap-c)#priority level 1
9500H(config-pmap-c)#queue-buffers ratio 50 <-- 50 / 50 split between both queues
9500H(config-pmap-c)#class class-default
9500H(config-pmap-c)#priority level 2 <-- Priority level 2 in use now
9500H(config-pmap-c)#queue-buffers ratio 50 <-- 50 / 50 split between both queues
Résultat de la carte de stratégie test6 appliquée :
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 3600 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 9 600 0 0 0 0 1 4800 En <-- Softmax is equal to hardmax 1 1 5 600 10 2400 16 1200 0 0 1 4800 En <-- Softmax is multiplied by Hidden Multiplier (400%) and User Multiplier (100% default)r
<snip>
Dans le résultat présenté précédemment, la seconde file d'attente softmax a 4 softmax de la première file d'attente. Cela est dû au fait que le softmax de niveau de priorité 1 n'est pas affecté spécifiquement par les multiplicateurs softmax du système, mais le softmax de niveau de priorité 2 l'est.
Si vous configurez un multiplicateur softmax utilisateur, seule la file d'attente de niveau de priorité 2 est affectée :
9500H(config)#qos queue-softmax-multiplier 200
9500H#show platform hardware fed active qos queue config interface tw1/0/3
Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 7200 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 9 600 0 0 0 0 5 9600 En <--- priority-level 1 queue unaffected by softmax multiplier 1 1 5 600 10 4800 8 1200 0 0 5 9600 En <--- User multiplier increased to 200%, softmax for this queue doubles
<snip>
La configuration queue-limit affecte l'allocation finale de tampon de file d'attente
Le mécanisme principal pour influencer l'allocation de tampon de file d'attente est la configuration queue buffers-ratio ajoutée par file d'attente dans un policy-map MQC.
Cependant, l'allocation de tampon de file d'attente est affectée par d'autres configurations.
Queue-limit définit les seuils par lesquels vous abandonnez une classe particulière de trafic (via Weighted Tail Drop, WTD), qui n'est pas traitée dans ce document.
Dans une circonstance spécifique, queue-limit modifie le système Hidden Multiplier pour les files d'attente de tampon logiciel - ce qui affecte l'allocation globale de tampon logiciel pour cette file d'attente à laquelle queue-limit est appliqué.
Tout d'abord, comprenez que queue-limit peut être configuré jusqu'à 3 fois par classe. Cela permet de définir jusqu'à 3 seuils pour le WTD par DSCP, ou CoS.
Dans le résultat suivant, seuls deux seuils sont définis.
Appliquez deux limites de file d'attente à une carte de stratégie :
9500H(config)#policy-map test7
9500H(config-pmap)# class class1
9500H(config-pmap-c)# priority level 1
9500H(config-pmap-c)# queue-buffers ratio 50
9500H(config-pmap-c)# class class-default
9500H(config-pmap-c)# priority level 2
9500H(config-pmap-c)# queue-buffers ratio 50
9500H(config-pmap-c)# queue-limit dscp af11 percent 10 <-- Tells system to drop af11 traffic at 10% queue utilization
9500H(config-pmap-c)# queue-limit dscp af12 percent 50 <-- Tells system to drop af12 traffic at 50% queue utilization
Observez les résultats de l'allocation de mémoire tampon :
9500H(config-pmap-c)#interface tw1/0/3
9500H(config-if)#service-policy output test7
9500H#show platform hardware fed active qos queue config interface tw1/0/3 Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 7200 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 9 600 0 0 0 0 5 9600 En 1 1 5 600 10 4800 8 1200 0 0 5 9600 En <--- final result for queue that contains 2 queue-limit statements is 4800
<snip>
Dans l'exemple suivant, une troisième configuration queue-limit est ajoutée à class class-default.
Observez les résultats de l'allocation de mémoire tampon :
9500H(config)#policy-map test7
9500H(config-pmap)#class class-default
9500H(config-pmap-c)#queue-limit dscp af13 percent 100
9500H#show platform hardware fed active qos queue config interface tw1/0/3
Asic:0 Core:1 DATA Port:22 GPN:103 LinkSpeed:0x12 AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 176 - 183 DrainFast:Disabled PortSoftStart:5 - 1800 BufferSharing:Disabled DTS Hardmax Softmax PortSMin GlblSMin PortStEnd QEnable ----- -------- -------- -------- -------- --------- ------- 0 1 5 600 9 600 0 0 0 0 5 2400 En 1 1 5 600 10 1200 32 1200 0 0 5 2400 En <-- Softmax reduces by 400% from previous example
<snip>
Lorsqu'une troisième configuration queue-limit est ajoutée à une file d'attente, le multiplicateur de tampon logiciel masqué de 400 % est désactivé pour cette file d'attente. Cependant, cette file d'attente respecte toujours un multiplicateur qos queue-softmax <percent> configuré par l'utilisateur.
Révision | Date de publication | Commentaires |
---|---|---|
3.0 |
24-May-2024 |
Recertification |
1.0 |
02-Dec-2022 |
Première publication |