Configuration de tampons à délai important dans la classe de service (CoS)
Vous pouvez configurer des tampons à très long délai à l’aide de la buffer-size-temporal
commande combinée à la q-pic-large-buffer
commande. L’option buffer-size temporal
combinée q-pic-large-buffer
peut créer des attributions de tampon différées très importantes pour une ou plusieurs files d’attente sur une interface.
Si la taille de mémoire tampon configurée est trop faible, la taille de tampon pour la classe de transfert par défaut vers 9192 et le message journal suivant s’affiche : « fwdd_cos_set_delay_bandwidth:file d’attente :16 taille de mise en mémoire tampon retardée (1414), définition par défaut 9192. »
Configuring Large Delay Buffers
La configuration suivante s’applique aux exemples suivants :
Example: Simple Configuration Using Four Queues
Cette configuration alloue 12 500 000 octets de mémoire tampon pour chacune des quatre files d’attente. Pour éviter de dépasser les limites du calcul de la mise en mémoire tampon retardée, cet exemple initial ne présente aucun débit de mise en forme d’interface, débit d’émission du planificateur ou configuration de la taille de la mise en mémoire tampon du planificateur.
Indiquez la mise en mémoire tampon de 4 secondes maximum sur chacune des quatre files d’attente :
[edit]
set class-of-service schedulers be-Scheduler0 buffer-size temporal 4m
set class-of-service schedulers video-Scheduler1 buffer-size temporal 4m
set class-of-service schedulers voice-Scheduler2 buffer-size temporal 4m
set class-of-service schedulers nc-Scheduler3 buffer-size temporal 4m
La spécification sur
buffer-size temporal
une ou plusieurs files d’attente utilise des pourcentages de débit d’émission implicites (par défaut) ou explicites comme pourcentages de la taille de la mémoire tampon des valeurs temporelles pour ces files d’attente. Comme aucun pourcentage de débit d’émission n’est explicitement spécifié, diviser 100 % par le nombre de files d’attente configurées (files d’attente avec des planificateurs configurés dans le plan du planificateur) pour obtenir les pourcentages implicites (par défaut) du débit d’émission par file d’attente. Chaque file d’attente reçoit un débit d’émission implicite (par défaut) de 100 % / 4 = 25 %.Dans cet exemple, en spécifiant le délai maximal de 4 secondes sur chaque file d’attente, sans mise en forme sur l’interface et des débits d’émission implicites (par défaut) par file d’attente de 25 %, le tampon total pour toutes les files d’attente temporelles de 4 m sur une interface = 4 secondes * 100 000 000 bps d’interface maximum / 8 bits/octets = 4 secondes * 12 500 000 octets = 50 000 000 octets. Chaque file d’attente spécifiant 4 m temporels reçoit 25 % * 50 000 000 = 12 500 000 octets.
Ajoutez un débit de mise en forme de 4 Mb/s à l’interface :
[edit]
set class-of-service interfaces ge-0/0/3 unit 201 shaping-rate 4m
Mise en mémoire tampon totale pour toutes les files d’attente temporelles de 4 m sur une interface = 4 s * 4 000 000 milliards de paquets par seconde mise en forme / 8 bits/octet = 4 s * 500 000 octets = 2 000 000 000 octets. Ainsi, chaque file d’attente spécifiant 4 m temporels reçoit 25 % * 2 000 000 = 500 000 octets.
Si vous utilisez buffer-size temporal
une file d’attente d’interface, si vous utilisez également la transmit-rate percent
commande, la buffer-size percent
commande, ou les deux, sur l’une des files d’attente d’interface, les calculs de la taille de la mémoire tampon deviennent plus complexes et les limites de la profondeur de file d’attente disponible peuvent être atteintes. Si la configuration tente de dépasser la mémoire disponible, deux messages de journal système apparaissent dans le /var/log/messages
fichier au moment de la validation, la configuration de la classe de service de l’interface est ignorée et la configuration de la classe de service de l’interface revient aux deux files d’attente par défaut :
Mar 11 11:02:10.239 elma-n4 elma-n4 COSMAN_FWDD: queue mem underflow for ge-0/0/3 Mar 11 11:02:10.240 elma-n4 elma-n4 cosman_compute_install_sched_params: Failed to compute scheduler params for ge-0/0/3.Hence retaining defaults
Lors de la configuration buffer-size temporal
avec transmit-rate percent
ou , ou buffer-size percent
les deux, vous devez surveiller le journal système pour voir si la limite de profondeur de la file d’attente disponible a été atteinte.
Example: Using buffer-size temporal with Explicit transmit-rate percent Commands
Pour ajouter des débits d’émission explicites aux quatre files d’attente :
[edit]set class-of-service schedulers be-Scheduler0 transmit-rate percent 10
set class-of-service schedulers video-Scheduler1 transmit-rate percent 25
set class-of-service schedulers voice-Scheduler2 transmit-rate percent 25
set class-of-service schedulers nc-Scheduler3 transmit-rate percent 40
Par exemple, si une interface est en forme de 4 Mbits/s, le pourcentage de débit d’émission de 10 pour une file d’attente signifie que la part de bande passante pour la file d’attente spécifique est de 0,4 Mbit/s. Les files d’attente sont des portions allouées des 2 000 000 octets de mémoire tampon totale disponibles pour les files d’attente temporelles sur cette interface, proportionnellement à leurs débits d’émission. Les quatre files d’attente obtiennent respectivement 200 000, 500 000, 500 000 et 800 000 octets de mémoire tampon différée.
Pour éviter de dépasser les limites de profondeur de file d’attente et de déclencher des messages de journalisation système et un comportement de configuration par défaut, lors de la configuration de files d’attente avec buffer-size temporal
et transmit rate percent
d’autres files d’attente (non temporelles) avec buffer-size percent
, la règle de configuration suivante doit être suivie : Lorsqu’une ou plusieurs files d’attente sur une interface sont configurées avec buffer-size temporal
, la somme des files d’attente temporelles configurées explicitement des pourcentages de débit d’émission et d’autres files d’attente non temporelles configurées explicitement en pourcentage de la taille de la mémoire tampon ne doit pas dépasser 100 pour cent.
Si le total des files d’attente temporelles transmet des pourcentages de débit et que les pourcentages non temporels de la taille de la mémoire tampon dépassent 100 %, les messages de journalisation système et Failed to compute scheduler params
les queue mem underflow
messages apparaissent dans le journal des messages, la configuration CoS CLI explicitement configurée pour l’interface est ignorée et l’interface revient à une configuration CoS par défaut à deux files d’attente.
Si buffer-size temporal
une file d’attente est spécifiée, si transmit-rate percent
elle est également configurée sur la même file d’attente, la profondeur de la file d’attente configurée est basée sur la bande passante fractionnée de la file d’attente, telle qu’obtenue par l’élément spécifié transmit-rate percent
.
Outre les délais temporels spécifiés pour une ou plusieurs files d’attente utilisant la taille de la mémoire tampon temporelle, un autre délai est automatiquement calculé pour l’ensemble de l’interface. Ce délai de délai d’interface est réparti entre toutes les files d’attente non temporelles, proportionnellement à leurs pourcentages implicites (par défaut) ou explicites de débit d’émission. Si q-pic-large-buffer
elle n’est pas activée, l’interface repousse le délai par défaut à 100 ms. Comme le montre le tableau 1, une fois q-pic-large-buffer
activé, le délai de mise en forme de l’interface est calculé en fonction du débit de mise en forme configuré pour l’interface. Le débit de mise en forme configuré dans l’exemple ci-dessus étant de 4 Mbits/s (> 2 048 000 milliards de paquets par seconde), le délai de configuration de l’interface est de 100 msec.
Débit de mise en forme configuré (b/s) |
Délai de délai d’interface (msec) Utilisé pour les files d’attente non temporelles avec q-pic-large-buffer Enabled |
Délai par défaut utilisé (msec) Sans mémoire tampon q-pic |
---|---|---|
64,000-255,999 |
4000 |
100 |
256,000 - 511,999 |
2000 |
100 |
512,000 - 102,3999 |
1000 |
100 |
1,024,000 - 2,047,999 |
500 |
100 |
>= 2 048 000 |
100 |
100 |
Cet exemple calcule correctement les limites de mise en mémoire tampon des délais sur les files d’attente temporelles et non temporelles :
buffer-size temporal
Remplacez parbuffer-size percent
sur les files d’attente 0 et 1 :[edit]
delete class-of-service schedulers be-Scheduler0 buffer-size temporal 4m
delete class-of-service schedulers video-Scheduler1 buffer-size temporal 4m
set class-of-service schedulers be-Scheduler0 buffer-size percent 10
set class-of-service schedulers video-Scheduler1 buffer-size percent 25
Cela supprime l’exigence de 4 secondes de mise en mémoire tampon définies en dur et la remplace par une limite proportionnelle de 10 % (ou 25 %) du délai total d’interface pour les files d’attente non temporelles. Dans les deux cas, la profondeur de la file d’attente est calculée en fonction du partage de la bande passante de l’interface pour les files d’attente spécifiques. Mémoire d’interface non temporelle = débit de mise en forme * Délai d’interface (tableau 1) = 4 Mbits/s * 0,1 seconde = 500 000 octets par seconde * 0,1 seconde = 50 000 octets, par conséquent, les files d’attente 0 et 1 obtiennent 10% * 50,000 = 5000 octets et 25% * 50,000 = 12,500 octets de mémoire tampon de retard, respectivement.
Configuration
buffer-size temporal
dans les files d’attente 2 et 3 :[edit]
set class-of-service schedulers voice-Scheduler2 buffer-size temporal 4m
set class-of-service schedulers voice-Scheduler2 transmit-rate percent 25
set class-of-service schedulers nc-Scheduler3 buffer-size temporal 4m
set class-of-service schedulers nc-Scheduler3 transmit-rate percent 40
Les files d’attente 2 et 3 obtiennent encore respectivement 500 000 et 800 000 octets de mémoire tampon différée, comme calculé précédemment. Cette configuration respecte la règle selon laquelle la somme des pourcentages de débit d’émission temporel (25 % + 40 % = 65 %), plus les pourcentages non temporels de la taille de la mémoire tampon (10 % + 25 % = 35 %) ne dépassent pas 100 % (65 % + 35 % < = 100 %).
L’exemple suivant dépasse la limite de mise en mémoire tampon de retard, en déclenchant les messages de journalisation système et le comportement par défaut de la classe de service à deux files d’attente.
Faire passer le pourcentage de taille de la mémoire tampon de 25 % à 26 % pour les files d’attente non temporelles 1 :
[edit]
set class-of-service schedulers video-Scheduler1 buffer-size percent 26
Cela enfreint la règle de configuration selon laquelle la somme des pourcentages non temporels de la taille de la mémoire tampon (10 % + 26 % = 36 %), plus les pourcentages de débit d’émission dans les files d’attente temporelles (25 % + 40 % = 65 %) dépassent désormais 100 % (36 % + 65 % = 101 %). Par conséquent, les deux messages de journal système suivants apparaissent dans le /var/log/messages
fichier :
Mar 23 18:08:23 elma-n4 elma-n4 COSMAN_FWDD: %PFE-3: queue mem underflow for ge-0/0/3 q_num(3) Mar 23 18:08:23 elma-n4 elma-n4 cosman_compute_install_sched_params: %PFE-3: Failed to compute scheduler params for ge-0/0/3.Hence retaining defaults
Lorsque les limites de mémoire tampon de retard sont dépassées, les paramètres de classe de service configurés par l’interface de ligne de commande ne sont pas utilisés et la configuration par défaut de la classe de service (le planificateur par défaut) est attribuée à l’interface. Elle utilise deux files d’attente : la file d’attente (file d’attente 0) de classe transfert a un débit d’émission de 95 % et une taille de mémoire tampon 95, et le contrôle réseau de niveau transfert (file d’attente 3) a le taux d’émission 5 et la taille de la mémoire tampon 5.
queue 0: 1,187,500 Bytes queue 1: 9,192 Bytes queue 2: 9,192 Bytes queue 3: 62,500 Bytes