Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Große Verzögerungspuffer in CoS konfigurieren

Sie können sehr große Verzögerungspuffer konfigurieren, indem Sie den buffer-size-temporal Befehl in Kombination mit dem q-pic-large-buffer Befehl verwenden. Die buffer-size temporal Option in Kombination mit q-pic-large-buffer kann besonders große Verzögerungspufferzuweisungen für eine oder mehrere Warteschlangen auf einer Schnittstelle erstellen.

Hinweis:

Wenn die konfigurierte Puffergröße zu niedrig ist, wird die Puffergröße für die Weiterleitungsklasse standardmäßig auf 9192 festgelegt, und die folgende Protokollmeldung wird angezeigt: "fwdd_cos_set_delay_bandwidth:queue:16 delay buffer size (1414) too low, setting to default 9192."

Configuring Large Delay Buffers

Die folgende Konfiguration gilt für die folgenden Beispiele:

  1. Konfigurieren Sie zwei VLANs (ein Eingangs- und ein Ausgangs-VLAN) auf einer Schnittstelle. Für diese Konfiguration ist zunächst keine Schnittstellenformungsrate definiert.
  2. Aktivieren Sie die q-pic-large-buffer Option für dasselbe PIC zusätzlich zur buffer-size temporal Option für die Warteschlange, um einen großen Puffer in der Warteschlange zu erstellen:
    Hinweis:

    Die CLI gibt keine Warnung aus, wenn Sie buffer-size temporal ohne q-pic-large-buffer. Wenn Sie , buffer-size temporalstellen Sie sicher, dass die Konfiguration auch den q-pic-large buffer Befehl enthält.

  3. Definieren Sie vier Weiterleitungsklassen (Warteschlangennamen) für die vier Warteschlangen:
  4. Konfigurieren Sie die Weiterleitungsklassen (Warteschlangennamen), die in einer Scheduler-Zuordnung enthalten sind und auf das Ausgangs-VLAN angewendet werden:
  5. Legen Sie die Warteschlangenprioritäten fest. Zunächst werden nur Warteschlangenprioritäten definiert, keine Übertragungsraten oder Puffergrößen.

Example: Simple Configuration Using Four Queues

Diese Konfiguration weist jeder der vier Warteschlangen 12.500.000 Byte Puffer zu. Um zu vermeiden, dass die Grenzwerte der Verzögerungspufferberechnung überschritten werden, gibt es in diesem ersten Beispiel keine Konfiguration für die Schnittstellenformungsrate, die Scheduler-Übertragungsrate oder die prozentuale Konfiguration für die Scheduler-Puffergröße.

  1. Geben Sie den maximalen Verzögerungspuffer von 4 Sekunden für jede der vier Warteschlangen an:

    Bei der Angabe buffer-size temporal für einige oder alle Warteschlangen werden implizite (Standard) oder explizite Prozentsätze für die Übertragungsrate als Prozentsätze für die Puffergröße der Zeitwerte für diese Warteschlangen verwendet. Da es keine explizit angegebenen Prozentsätze für die Übertragungsrate gibt, teilen Sie 100 Prozent durch die Anzahl der konfigurierten Warteschlangen (Warteschlangen mit in der Scheduler-Zuordnung konfigurierten Schedulern), um die impliziten (Standard-) Prozentsätze der Übertragungsrate pro Warteschlange zu erhalten. Jede Warteschlange erhält eine implizite (Standard-) Übertragungsrate von 100% / 4 = 25%.

    In diesem Beispiel wird die maximale Verzögerung von 4 Sekunden für jede Warteschlange angegeben, ohne Shaping-Rate auf der Schnittstelle und implizite (Standard) Übertragungsraten pro Warteschlange von 25 Prozent, der Gesamtpuffer für alle zeitlichen 4-Millionen-Warteschlangen auf einer Schnittstelle = 4 Sekunden * 100.000.000 maximale Schnittstellenbps / 8 Bits/Byte = 4 Sekunden * 12.500.000 Byte = 50.000.000 Byte. Jede Warteschlange, die zeitliche 4 m angibt, erhält 25 % * 50.000.000 = 12.500.000 Byte.

  2. Fügen Sie der Schnittstelle eine Shaping-Rate von 4 Mbit/s hinzu:

    Der Gesamtpuffer für alle zeitlichen 4m-Warteschlangen auf einer Schnittstelle = 4 Sek. * 4.000.000 bps Shaping-Rate / 8 Bit/Byte = 4 Sek. * 500.000 Byte = 2.000.000 Byte. Daher erhält jede Warteschlange, die temporal 4m angibt, 25 % * 2.000.000 = 500.000 Byte.

Wenn Sie bei Verwendung buffer-size temporal in Schnittstellenwarteschlangen auch den transmit-rate percent Befehl oder den Befehl oder beide buffer-size percent Befehle in einer der Schnittstellenwarteschlangen verwenden, werden die Berechnungen der Puffergröße komplexer, und die Grenzen der verfügbaren Warteschlangentiefe werden möglicherweise erreicht. Wenn die Konfiguration versucht, den verfügbaren Arbeitsspeicher zu überschreiten, werden zur Zeit des Commits zwei Systemprotokollmeldungen in der /var/log/messages Datei angezeigt, die Class-of-Service-Konfiguration der Schnittstelle wird ignoriert und die Class-of-Service-Konfiguration der Schnittstelle wird auf die Standardeinstellungen für zwei Warteschlangen zurückgesetzt:

Wenn Sie zusammen mit transmit-rate percent oder buffer-size percentoder beiden konfigurierenbuffer-size temporal, müssen Sie das Systemprotokoll überwachen, um festzustellen, ob die verfügbare Warteschlangentiefe erreicht wurde.

Example: Using buffer-size temporal with Explicit transmit-rate percent Commands

So fügen Sie allen vier Warteschlangen explizite Übertragungsraten hinzu:

Wenn eine Schnittstelle beispielsweise auf 4 Mbit/s ausgelegt ist, bedeutet der Prozentsatz der Übertragungsrate von 10 für eine Warteschlange, dass der Bandbreitenanteil für die jeweilige Warteschlange 0,4 Mbit/s beträgt. Den Warteschlangen werden Teile der 2.000.000 Byte Gesamtpuffer zugewiesen, die für temporäre Warteschlangen auf dieser Schnittstelle verfügbar sind, proportional zu ihren Übertragungsraten. Die vier Warteschlangen erhalten 200.000, 500.000, 500.000 bzw. 800.000 Byte Verzögerungspuffer.

Um eine Überschreitung der Grenzwerte für die Warteschlangentiefe und das Auslösen von Systemprotokollmeldungen und Standardkonfigurationsverhalten zu vermeiden, muss bei der Konfiguration von Warteschlangen mit buffer-size temporal und transmit rate percent und anderen (nicht-temporalen) Warteschlangen mit buffer-size percentdie folgende Konfigurationsregel beachtet werden: Wenn eine oder mehrere Warteschlangen auf einer Schnittstelle mit buffer-size temporalkonfiguriert sind, darf die Summe der explizit konfigurierten Prozentsätze der temporalen Warteschlangen für die Übertragungsrate zuzüglich anderer explizit konfigurierter nicht-temporaler Warteschlangen für die Puffergröße 100 nicht überschreiten Prozent.

Wenn die Summe der prozentualen Übertragungsraten der temporalen Warteschlangen und die Prozentsätze der Puffergröße der nicht-temporalen Warteschlangen 100 Prozent überschreitet, werden die queue mem underflow Systemprotokollmeldungen und Failed to compute scheduler params im Nachrichtenprotokoll angezeigt, die explizit konfigurierte CLI-CoS-Konfiguration für die Schnittstelle wird ignoriert, und die Schnittstelle wird auf eine Standard-CoS-Konfiguration mit zwei Warteschlangen zurückgesetzt.

Wenn buffer-size temporal für eine Warteschlange angegeben wird, wenn transmit-rate percent auch für dieselbe Warteschlange konfiguriert ist, basiert die konfigurierte Warteschlangentiefe auf der Bruchteilsbandbreite für die Warteschlange, die durch die angegebene transmit-rate percent.

Zusätzlich zu den zeitlichen Verzögerungszeiten, die für eine oder mehrere Warteschlangen mit Puffergröße temporal angegeben werden, gibt es eine weitere Verzögerungszeit, die automatisch für die gesamte Schnittstelle berechnet wird. Diese Schnittstellenverzögerungszeit wird proportional zu ihren impliziten (Standard) oder expliziten Übertragungsratenprozentsätzen auf alle nicht-temporalen Warteschlangen verteilt. Wenn q-pic-large-buffer diese Option nicht aktiviert ist, beträgt die Verzögerungszeit der Schnittstelle standardmäßig 100 ms. Wie in Tabelle 1 dargestellt, wird die q-pic-large-buffer Schnittstellenverzögerungszeit bei Aktivierung entsprechend der konfigurierten Shaping-Rate für die Schnittstelle berechnet. Da die im obigen Beispiel konfigurierte Shaping-Rate 4 Mbit/s (> 2.048.000 bps) betrug, beträgt die Schnittstellenverzögerungszeit für die Konfiguration 100 ms.

Tabelle 1: Schnittstellenverzögerungszeiten, die durch q-pic-large-buffer aktiviert werden

Konfigurierte Shaping-Rate (bps)

Schnittstellenverzögerungszeit (ms) für nicht-temporale Warteschlangen mit aktiviertem q-pic-large-buffer

Verwendete Standard-Verzögerungszeit (ms) ohne q-pic-large-buffer

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

In diesem Beispiel werden die Grenzwerte für den Verzögerungspuffer sowohl für temporale als auch für nicht-temporale Warteschlangen ordnungsgemäß berechnet:

  1. Ersatz buffer-size percent für buffer-size temporal die Warteschlangen 0 und 1:

    Dadurch wird die Anforderung für eine fest spezifizierte Pufferung von 4 Sekunden gelöscht und durch einen proportionalen Grenzwert von 10 Prozent (oder 25 Prozent) der gesamten Schnittstellenverzögerungszeit für die nicht-temporalen Warteschlangen ersetzt. In beiden Fällen wird die Warteschlangentiefe basierend auf dem Anteil der Schnittstellenbandbreite für die jeweiligen Warteschlangen berechnet. Total Interface Non-Temporal Queue Memory = Shaping-Rate * Schnittstellenverzögerungszeit (Tabelle 1) = 4 Mbit/s * 0,1 Sekunden = 500.000 Byte pro Sekunde * 0,1 Sekunden = 50.000 Byte, daher erhalten die Warteschlangen 0 und 1 10 % * 50.000 = 5000 Byte bzw. 25 % * 50.000 = 12.500 Byte Verzögerungspuffer.

  2. Konfiguration buffer-size temporal für Warteschlangen 2 und 3:

    Die Warteschlangen 2 und 3 erhalten immer noch 500.000 bzw. 800.000 Byte Verzögerungspuffer, wie zuvor berechnet. Diese Konfiguration folgt der Regel, dass die Summe der prozentualen Übertragungsraten der temporalen Warteschlangen (25 % + 40 % = 65 %) und der Puffergröße der nicht-temporalen Warteschlangen (10 % + 25 % = 35 %) 100 % (65 % + 35 % <= 100 %) nicht überschreitet.

Im folgenden Beispiel wird die Verzögerungspuffergrenze überschritten, wodurch die Systemprotokollmeldungen und das standardmäßige Class-of-Service-Verhalten mit zwei Warteschlangen ausgelöst werden.

Erhöhen Sie den Prozentsatz der Puffergröße von 25 Prozent auf 26 Prozent für nicht-temporale Warteschlange 1:

Dies verstößt gegen die Konfigurationsregel, dass die Summe der Prozentsätze für die Puffergröße der nicht-temporalen Warteschlangen (10 % + 26 % = 36 %) und der prozentualen Übertragungsrate der temporalen Warteschlangen (25 % + 40 % = 65 %) jetzt 100 % (36 % + 65 % = 101 %) überschreitet. Daher werden die folgenden beiden Systemprotokollmeldungen in der /var/log/messages Datei angezeigt:

Wenn die Grenzwerte für den Verzögerungspuffer überschritten werden, werden die CLI-konfigurierten Class-of-Service-Einstellungen nicht verwendet und der Schnittstelle wird die Standard-Class-of-Service-Konfiguration (die Standard-Scheduler-Zuordnung) zugewiesen. Dabei werden zwei Warteschlangen verwendet: Die Best-Effort-Warteschlange der Weiterleitungsklasse (Warteschlange 0) hat eine Übertragungsrate von 95 und die Puffergröße in Prozent 95, und die Weiterleitungsklasse Network-Control (Warteschlange 3) hat die Übertragungsrate in Prozent 5 und die Puffergröße in Prozent 5.