Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konventionen

Allgemeine Übersicht

Low-End-Plattformen (Cisco Router der Serien 1600, 2500 und 4000)

High-End-Plattformen (Routingprozessoren, Switch-Prozessoren, Silicon Switch-Prozessoren und Route-/Switch-Prozessoren)

Partikelbasierte Plattformen

Puffer-Tuning

Reservieren des Fabric-Puffers

Puffer-Leaks

Zugehörige Informationen

Einführung

Dieses Dokument bietet eine Übersicht über das Puffer-Tuning auf Basis aktueller Plattformen und enthält allgemeine Informationen zum Befehl show buffers.

Voraussetzungen

Anforderungen

Für dieses Dokument bestehen keine speziellen Anforderungen.

Verwendete Komponenten

Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.

Die in diesem Dokument enthaltenen Informationen wurden aus Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Sie in einem Live-Netzwerk arbeiten, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen, bevor Sie es verwenden.

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions.

Allgemeine Übersicht

Mit der Puffer-Tuning-Funktion können Sie die Art und Weise ändern, wie ein Router Puffer aus seinem verfügbaren Speicher zuweist, und verhindern Paketverluste während eines temporären Datenverkehrssprungs.

Um zu bestimmen, ob der Puffer des Routers optimiert werden muss, verwenden Sie die Befehle show interfaces und show buffers.

Wenn Sie die Ausgabe der show-Schnittstellen und die show buffers-Befehle oder die Ausgabe des show Technical-support (aus dem enable-Modus) von Ihrem Cisco Gerät haben, können Sie Cisco CLI Analyzer zur Anzeige potenzieller Probleme und Fixes verwenden. Um den Cisco CLI Analyzer verwenden zu können, müssen Sie ein registrierter Kunde sein, angemeldet sein und JavaScript aktivieren.

Im Folgenden sehen Sie ein Beispiel für die Befehlsausgabe show interfaces:

Output queue 0/40, 1041 drops; input queue 0/75, 765 drops

35252345 packets input, 547082589 bytes, 940 no buffer

- Die Ein- und Ausgabeverwerfungen sind darauf zurückzuführen, dass die Ein- und Ausgabewarteschlangen durch einen sprunghaften Datenverkehr überlastet werden. Dies hängt nicht mit einem Pufferproblem zusammen, sondern mit einer Einschränkung der Switching-Performance.

- "Kein Puffer" steht für die Anzahl der blockierten Pakete, da kein freier Puffer zum Kopieren des Pakets vorhanden ist.

Überprüfen Sie mit dem Befehl show buffers die Puffergröße entsprechend der maximalen Übertragungseinheit (Maximum Transmission Unit, MTU) der Schnittstelle:

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

Die folgende Tabelle erklärt die Ergebnisse:

Schlüsselwort

Beschreibung

gesamt

Die Gesamtanzahl der Puffer im Pool, einschließlich der verwendeten und nicht verwendeten Puffer.

permanent

Die permanente Anzahl der zugewiesenen Puffer im Pool. Diese Puffer befinden sich immer im Pool und lassen sich nicht abreißen.

in freier Liste

Die Anzahl der kostenlosen Puffer, die derzeit im Pool zur Verfügung stehen.

Min

Die Mindestanzahl an Puffern, die der Router in einer freien Liste aufbewahren sollte. Wenn die Anzahl der Puffer "in der freien Liste" unter den Wert "min" fällt, sollte der Router versuchen, mehr Puffer für diesen Pool zu erstellen.

maximal zulässig

Die maximale Anzahl an Puffern, die "in der freien Liste" zulässig sind. Wenn die Anzahl der Puffer "in der freien Liste" den Wert "max allowed" überschreitet, sollte der Router versuchen, Puffer aus dem Pool zu entfernen.

Treffer

Die Anzahl der Puffer, die erfolgreich aus der freien Liste zugewiesen wurden.

Fehlzeiten

Die Anzahl der angeforderten Puffer, aber keine Puffer sind in der freien Liste verfügbar, oder wenn es weniger als "min" Puffer in der freien Liste gibt.

Tricks

Die Anzahl der Puffer, die aus dem Pool entfernt wurden, wenn die Anzahl der Puffer "in der freien Liste" die Anzahl der "max allowed" Puffer überschreitet.

erstellt

Die Anzahl der Puffer, die im Pool erstellt wurden, als die Anzahl der Puffer "in der freien Liste" kleiner als "min." war.

Kein Speicher

Die Anzahl der Versuche des Routers, neue Puffer zu erstellen, konnte jedoch nicht durch unzureichenden freien Speicher im Router verursacht werden.

Fehler

Die Anzahl der Ausfälle, bei denen einem Anfragen während der Unterbrechungszeit ein Puffer zugewiesen wird (denken Sie daran, dass der Router beim Switching von Prozessen neue Puffer erstellen kann. "Fehler" tritt daher nur dann auf, wenn "kein Speicher" vorhanden ist). Die Anzahl der "Ausfälle" stellt die Anzahl der Pakete dar, die aufgrund von Pufferknappheit verworfen wurden.

Vorgehensweise von Puffern durch den Router

Die Anzahl der Puffer "in der freien Liste" ist die Anzahl der verfügbaren Puffer. Wenn eine Pufferanforderung eingeht, wird ein Puffer aus der "in-free-Liste" zugewiesen.

Die IOS-Puffer werden aus zwei Hauptgründen verwendet:

- Verarbeitung des Datenverkehrs, der am Router terminiert wird

- Beim Switching von Paketen durch den Prozess

Wenn keine Puffer verfügbar sind und schnelles Switching aktiviert ist, tritt ein Pufferfehler auf, und das Paket wird verworfen. Wenn der Puffer-Pool-Manager einen Pufferfehler erkennt, "erstellt" er einen neuen Puffer, um zukünftige Ausfälle zu vermeiden.

Der Router erstellt keinen neuen Puffer, wenn die Zahl "in der freien Liste" dem Wert "max allowed" entspricht. Wenn der Router nicht über genügend Speicher verfügt, um einen neuen Puffer zu erstellen, wird dies als "kein Speicher" aufgezeichnet. Wenn die Zahl "in der freien Liste" größer als die "max allowed"-Zahl ist, "trimmt" der Router einige überschüssige Puffer.

Die Anzahl der "Ausfälle" und "kein Speicher" sind die einzigen Problembereiche. Fehler können auftreten, sollten sich aber nach einiger Zeit stabilisieren. Der Router erstellt oder trimmt Puffer, um die Anzahl der Ausfälle zu stabilisieren. Wenn die Anzahl der Ausfälle weiter zunimmt, kann eine Puffer-Tuning-Funktion erforderlich sein.

Wenn nicht genügend Speicher vorhanden ist, um neue Puffer zu erstellen, suchen Sie nach einem Pufferleck oder einem allgemeineren Speicherproblem. Im Fast-Switching-Pfad werden keine Puffer erstellt. Wenn der Router also versucht, ein Paket schnell umzuschalten und kein Puffer verfügbar ist, wird das Paket verworfen, und ein Fehler wird gemeldet. Beim nächsten Ausführen des Pufferpool-Managers wird ein neuer Puffer erstellt.

Low-End-Plattformen (Cisco Router der Serien 1600, 2500 und 4000)

Fast-Switched-Pakete und prozessvermittelte Pakete nutzen dieselben Puffer. Diese Puffer befinden sich im gemeinsam genutzten Speicher. Der gemeinsam genutzte Speicher befindet sich in den Cisco Routern der Serien 1600 und 2500 im dynamischen RAM (DRAM) oder in einem gemeinsam genutzten RAM (SRAM) für die Cisco Router der Serien 4000, 4500 und 4700.

Die ersten Zeilen des Befehls show memory geben an, wie viel gemeinsam genutzter Speicher Sie haben, wie viel aktuell verwendet wird und welcher niedrigste Punkt erreicht wurde. Wenn kein schnelles Switching eines Pakets möglich ist, wird ein Pointer auf das Paket in die Prozess-Switching-Eingangswarteschlange eingefügt, das Paket selbst wird jedoch nicht kopiert.

Dies ist die Ausgabe des Befehls show buffers auf einer Low-End-Plattform (Cisco 4500):

router# show buffers

Buffer elements:

471 in free list (500 max allowed)

870696495 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 50, permanent 50):

49 in free list (20 min, 150 max allowed)

27301678 hits, 23 misses, 20 trims, 20 created

0 failures (0 no memory)

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

Big buffers, 1524 bytes (total 67, permanent 50):

67 in free list (5 min, 150 max allowed)

46293638 hits, 455 misses, 878 trims, 895 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 96, permanent 10):

79 in free list (0 min, 100 max allowed)

11818351 hits, 246 misses, 98 trims, 184 created

243 failures (0 no memory)

Large buffers, 5024 bytes (total 10, permanent 0):

10 in free list (0 min, 10 max allowed)

4504003 hits, 873040 misses, 759543 trims, 759553 created

873040 failures (0 no memory)

Huge buffers, 18024 bytes (total 0, permanent 0):

0 in free list (0 min, 4 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Interface buffer pools:

TokenRing0 buffers, 4516 bytes (total 48, permanent 48):

0 in free list (0 min, 48 max allowed)

3099742 hits, 9180771 fallbacks

16 max cache size, 1 in cache

TokenRing1 buffers, 4516 bytes (total 48, permanent 48):

0 in free list (0 min, 48 max allowed)

335172 hits, 403668 fallbacks

16 max cache size, 16 in cache

Serial1 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

33 hits, 0 fallbacks

0 max cache size, 0 in cache

Serial2 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

701370936 hits, 268 fallbacks

0 max cache size, 0 in cache

Serial3 buffers, 1524 bytes (total 96, permanent 96):

63 in free list (0 min, 96 max allowed)

33 hits, 0 fallbacks

0 max cache size, 0 in cache

Serial0 buffers, 4546 bytes (total 96, permanent 96):

28 in free list (0 min, 96 max allowed)

346854 hits, 5377043 fallbacks

32 max cache size, 27 in cache

Die Schnittstellen-Puffer-Pools werden von den Schnittstellen für Eingabe/Ausgabe (E/A) verwendet. Wenn in der Liste für den Schnittstellenpuffer keine Puffer mehr vorhanden sind, geht der Router als Fallback zu den öffentlichen Puffer-Pools. Für einen Fallback gibt es keinen Performance-Treffer.

Caching ist eine Software-Manipulation, die die Verfügbarkeit von Puffern für den Code des Interrupt-Level-Treibers beschleunigt, indem einige Overhead umgangen wird.

Hinweis: Normalerweise sollten Schnittstellenpuffer nicht angepasst werden.

High-End-Plattformen (Routingprozessoren, Switch-Prozessoren, Silicon Switch-Prozessoren und Route-/Switch-Prozessoren)

Hier ist die Ausgabe des Befehls show buffers auf einer High-End-Plattform:

Router# show buffers

Buffer elements:

498 in free list (500 max allowed)

326504974 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 150, permanent 150):

140 in free list (30 min, 250 max allowed)

564556247 hits, 148477066 misses, 16239797 trims, 16239797 created

29356200 failures (0 no memory)

Middle buffers, 600 bytes (total 120, permanent 120):

116 in free list (20 min, 200 max allowed)

319750574 hits, 85689239 misses, 9671164 trims, 9671164 created

26050704 failures (0 no memory)

Big buffers, 1524 bytes (total 100, permanent 100):

98 in free list (10 min, 300 max allowed)

20130595 hits, 14796572 misses, 251916 trims, 251916 created

11813639 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 15, permanent 15):

14 in free list (5 min, 300 max allowed)

22966334 hits, 3477687 misses, 13113 trims, 13113 created

2840089 failures (0 no memory)

Large buffers, 5024 bytes (total 12, permanent 12):

12 in free list (0 min, 30 max allowed)

849034 hits, 1979463 misses, 1028 trims, 1028 created

1979456 failures (0 no memory)

Huge buffers, 18024 bytes (total 6, permanent 5):

4 in free list (2 min, 13 max allowed)

338440 hits, 1693496 misses, 1582 trims, 1583 created

1640218 failures (0 no memory)

Header-Pools

Die öffentlichen Pufferpools befinden sich im DRAM und werden als Systempuffer bezeichnet. Der gemeinsam genutzte Speicher auf dem Route/Switch Processor (RSP) wird als Systempaketspeicher (MEMD) bezeichnet und ermöglicht 2 MB Arbeitsspeicher. Auf dem Route Processor (RP) und dem Switch Processor (SP) (oder Silicon Switch Processor - SSP) befinden sich die Systempuffer auf dem RP, und der MEMD befindet sich auf dem SP (oder SSP).

Wenn ein Paket eingeht, wird es vom empfangenden Schnittstellenprozessor im MEMD gespeichert (außer im Fall des Versatile Interface Processor - VIP). Wenn es nicht schnell geswitcht werden kann, wird das gesamte Paket in einen Systempuffer im DRAM kopiert. Die im Befehl show buffers angezeigten Puffer sind daher die Systempuffer im DRAM.

Der Befehl show controller cbus zeigt die Schnittstellenpuffer in MEMD an. Auch hier wird nicht empfohlen, die Schnittstellenpuffer anzupassen. Wenn ein Paket nicht schnell geswitcht werden kann und in einen Systempuffer kopiert wird, wird das Paket verworfen und ein Fehler gezählt, wenn kein Systempuffer verfügbar ist.

Partikelbasierte Plattformen

Die Cisco Router der Serien 3600 und 7200 verwenden Partikel. Die Schnittstellenpuffer sind atomare Puffer, so genannte Partikel, in die die Pakete aufgeteilt werden. Wenn ein Paket nicht schnell geswitcht werden kann, muss der Router es in einem Systempuffer wieder zusammenbauen, da der Prozess-Switching-Code keine Partikel behandeln kann.

Die Ausgabe des Befehls show buffers auf einem Cisco 3600 ist unten dargestellt:

Router# show buffers

Buffer elements:

499 in free list (500 max allowed)

136440 hits, 0 misses, 0 created

Public buffer pools:

Small buffers, 104 bytes (total 50, permanent 50):

49 in free list (20 min, 150 max allowed)

4069435 hits, 141 misses, 73 trims, 73 created

52 failures (0 no memory)

Middle buffers, 600 bytes (total 25, permanent 25):

25 in free list (10 min, 150 max allowed)

628629 hits, 21 misses, 21 trims, 21 created

3 failures (0 no memory)

Big buffers, 1524 bytes (total 50, permanent 50):

50 in free list (5 min, 150 max allowed)

9145 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 10, permanent 10):

10 in free list (0 min, 100 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Large buffers, 5024 bytes (total 0, permanent 0):

0 in free list (0 min, 10 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Huge buffers, 18024 bytes (total 0, permanent 0):

0 in free list (0 min, 4 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Interface buffer pools:

CD2430 I/O buffers, 1524 bytes (total 0, permanent 0):

0 in free list (0 min, 0 max allowed)

0 hits, 0 fallbacks

Header pools:

Header buffers, 0 bytes (total 265, permanent 256):

9 in free list (10 min, 512 max allowed)

253 hits, 3 misses, 0 trims, 9 created

0 failures (0 no memory)

256 max cache size, 256 in cache

Particle Clones:

1024 clones, 0 hits, 0 misses

Public particle pools:

F/S buffers, 256 bytes (total 384, permanent 384):

128 in free list (128 min, 1024 max allowed)

256 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

256 max cache size, 256 in cache

Normal buffers, 1548 bytes (total 512, permanent 512):

356 in free list (128 min, 1024 max allowed)

188 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

128 max cache size, 128 in cache

Private particle pools:

Ethernet0/0 buffers, 1536 bytes (total 96, permanent 96):

0 in free list (0 min, 96 max allowed)

96 hits, 0 fallbacks

96 max cache size, 64 in cache

Serial0/0 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0:1 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

BRI0/0:2 buffers, 1548 bytes (total 14, permanent 14):

0 in free list (0 min, 14 max allowed)

14 hits, 0 fallbacks

14 max cache size, 14 in cache

TokenRing0/0 buffers, 1548 bytes (total 64, permanent 64):

0 in free list (0 min, 64 max allowed)

64 hits, 0 fallbacks

64 max cache size, 64 in cache

4 buffer threshold, 0 threshold transitions

Private Teilchenpools werden von den Schnittstellen verwendet und sollten nicht angepasst werden. Wenn in der freien Liste kein Puffer verfügbar ist, greift der Router auf die öffentlichen Partikelpools zurück.

Header-Puffer werden verwendet, um eine Liste aller Partikel aufzuzeichnen, die zu einem Paket gehören.

Hinweis: Systempuffer werden für das Switching von Prozessen verwendet. Beim Cisco 3600 befinden sich alle diese Puffer im E/A-Speicher, der sich im DRAM befindet. Sie können die Größe des E/A-Speichers mit dem Befehl Arbeitsspeichergröße angeben. Auf dem Cisco 7200 befinden sich die Schnittstellenpartikelpuffer-Pools für die PAs (High Bandwidth Port Adapters) im SRAM.

Puffer-Tuning

Im Folgenden sehen Sie ein Beispiel für den Befehl show buffers:

Middle buffers, 600 bytes (total 150, permanent 25):

147 in free list (10 min, 150 max allowed)

61351931 hits, 137912 misses, 51605 trims, 51730 created

91652 failures (0 no memory)

In diesem Beispiel haben die mittleren Puffer viele Fehler. Dies ist kein ernstes Problem, da es nur 0,1 % der Treffer ausmacht. Diese Zahlen sollten durch eine gewisse Puffer-Anpassung leicht verbessert werden.

Puffer-Tuning wird nur durchgeführt, wenn Pakete nicht über CEF geswitcht werden können.

Je nach Architektur des Routers gehören die von Ihnen gewählten Puffer im Allgemeinen entweder zum E/A-Speicher (Low-End) oder zum Hauptspeicher (High-End). Bevor Sie die Puffer anpassen, überprüfen Sie zunächst, ob Sie über genügend freie E/A- oder Hauptspeicher verfügen, indem Sie die ersten Zeilen des Befehls show memory verwenden.

Hier einige allgemeine Werte, die Sie verwenden können:

- permanent: die Anzahl der Puffer in einem Pool und 20 % mehr.

- mindestfrei: Legen Sie min-free auf etwa 20-30% der permanenten Anzahl der zugewiesenen Puffer im Pool fest.

- max-free: Setzen Sie max-free auf etwas größer als die Summe der bleibenden und minimalen.

Im Beispiel für die Pufferung oben können Sie die folgenden Befehle im globalen Konfigurationsmodus eingeben:

buffers middle permanent 180

buffers middle min-free 50

buffers middle max-free 230

In der Regel erstellt die Cisco IOSÂ® Software dynamisch Puffer, sodass diese Einstellungen in Ordnung sind. Bei einem Datenverkehrsausfall hat der Router jedoch möglicherweise nicht genügend Zeit, die neuen Puffer zu erstellen, und die Anzahl der Ausfälle kann weiter ansteigen. Mit dem Befehl puffer können Sie die Standardeinstellungen für den Pufferpool ändern. Stellen Sie sicher, dass Änderungen an den Pufferwerten mit Vorsicht vorgenommen werden, da unsachgemäße Puffereinstellungen die Systemleistung beeinträchtigen können. Wenn Sie die Pufferzähler löschen möchten, muss der Router neu geladen werden.

Es gibt zwei Arten von Datenverkehrsspitzen:

- Langsamer Burst: In diesem Fall hat der Router genügend Zeit, neue Puffer zu erstellen. Erhöhen Sie die Anzahl der mindestfreien Puffer. Durch die Verwendung freier Puffer können Sie den mindestfreien Wert erreichen und dann neue Puffer erstellen.

- Schneller Burst: Bei schnellen Datenverkehrsspitzen hat der Router nicht genügend Zeit, neue Puffer zu erstellen. Daher sollten Sie die freien Puffer verwenden. Ändern Sie dazu die Anzahl der permanenten Puffer.

Zusammenfassung: Wenn der Create-Zähler nach der Ersteinstellung zunimmt, erhöhen Sie den Wert min-free (slow Burst). Wenn der Fehlerzähler erhöht wird, aber nicht der Create-Zähler (schneller Burst), erhöhen Sie den permanenten Wert.

Reservieren des Fabric-Puffers

Sie können den Befehl Fabric buffer-reserve eingeben, um den Systemdurchsatz zu verbessern, und die ASIC-Puffer reservieren.

Dieser Befehl wird auf den folgenden Modulen unterstützt:

- WS-X6704-10GE

- WS-X6748-SFP

- WS-X6748-GE-TX

- WS-X6724-SFP

Dieser Befehl wird auf den Cisco Routern der Serie 7600, die mit der Supervisor Engine 32 konfiguriert sind, nicht unterstützt.

fabric buffer-reserve [high | low | medium | value]

Vorsicht: Verwenden Sie diesen Befehl nur unter Anleitung des Cisco TAC.

Dies sind häufige Umstände, unter denen dieser Befehl sinnvoll ist:

- Das Verbindungsprotokoll wird für mehrere Schnittstellen deaktiviert.

- Überläufe sind an mehreren Schnittstellen sichtbar.

- Ports verlassen und treten häufig zum EtherChannel hinzu

- TestMacNotification schlägt bei Line Cards mit DFC wiederholt fehl

Puffer-Leaks

Im Folgenden finden Sie ein Beispiel für die Ausgabe des Befehls show buffers:

Big buffers, 1524 bytes (total 1556, permanent 50):

52 in free list (5 min, 150 max allowed)

43670437 hits, 5134 misses, 0 trims, 1506 created

756 failures (0 no memory)

Diese Ausgabe weist auf ein Pufferleck im großen Puffer-Pool hin. Der Router verfügt über insgesamt 1556 große Puffer und nur 52 befinden sich in der freien Liste. Etwas nutzt alle Puffer und befreit sie nicht. Weitere Informationen zu Pufferlecks finden Sie unter Fehlerbehebung bei Pufferlecks.

Zugehörige Informationen

- Fehlerbehebung bei Speicherfehlern

- Fehlerbehebung: Pufferlecks

- Grundlegende Systemverwaltungsbefehle

- Ändern der System-Puffergröße

- Technischer Support - Cisco Systems