In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
Dieses Dokument beschreibt die Ursachen und Lösungen für input discard für den Cisco Nexus 9500-R EoR und den Nexus 3000-R ToR. Eine input discard gibt die Anzahl der Pakete an, die aufgrund einer Überlastung in der Eingabewarteschlange verworfen wurden. Diese Zahl enthält Tropfen, die durch Schwanzfallen und Weighted Random Early Detection (WRED) verursacht werden.
Wenn Sie einen Zufallsverlust, einen sporadischen oder historischen (d. h. nicht mehr auftretenden) Rückgang feststellen, wenden Sie sich bitte an das Cisco TAC, um weitere Informationen zu erhalten. Diese exemplarische Vorgehensweise ist hilfreich, wenn Input discard häufig erhöht werden.
Die R-Serie verwendet die Eingangs-VOQ-Architektur. Die VOQ-Architektur emuliert Ausgangswarteschlangen im Eingangspuffer mit virtuellen Warteschlangen. Jeder Ausgangsport verfügt über acht Warteschlangen für Unicast-Datenverkehr und acht Warteschlangen für Multicast-Datenverkehr. Der Datenverkehr kann anhand des CoS- (Class of Service) oder DSCP-Werts (Differentiated Services Code Point) in den Paketen in Datenverkehrsklassen eingeteilt und dann in die entsprechende virtuelle Warteschlange für diese Datenverkehrsklasse aufgenommen werden.
Die R-Serie verwendet einen verteilten Kreditmechanismus, um Datenverkehr über die Fabric zu übertragen. Bevor ein Paket den VOQ verlassen soll, fordert der Eingangspuffer-Scheduler eine Gutschrift für den bestimmten Port und die Priorität im Ausgangspuffer an. Die Gutschrift wird von einem Eingangs-Credit Scheduler für den Zielport und die Priorität angefordert. Wenn Puffer-Speicherplatz verfügbar ist, gewährt der Egress-Scheduler Zugriff und sendet das Gutschrift-Grant an den Eingangspuffer-Scheduler. Wenn im Ausgangspuffer kein Pufferspeicher verfügbar ist, wird im Ausgangs-Zeitplan keine Gutschrift gewährt, und der Datenverkehr wird im VOQ gepuffert, bis die nächste Gutschrift verfügbar ist.
Unten sehen Sie die Paketweiterleitungspipeline für die -R-Plattform. In diesem Artikel konzentrieren Sie sich auf die Komponente Ingress Traffic Manager. Weitere Informationen zur Architektur finden Sie unter diesem Link.
Der Eingangs-Traffic-Manager (ITM) ist ein Block in der Eingangspipeline. Er führt Schritte im Zusammenhang mit dem Warteschlangendatenverkehr in VOQ durch, plant den Datenverkehr für die Übertragung über die Fabric und verwaltet Gutschriften.
Der Eingangs-VOQ-Pufferblock verwaltet sowohl den On-Chip-Puffer als auch den Off-Chip-Paket-Puffer. Beide Puffer nutzen die VOQ-Architektur, und der Datenverkehr wird anhand der Informationen des IRPP (Ingress Receiver Packet Processor) in Warteschlangen gestellt. Insgesamt stehen 96.000 VOQs für Unicast- und Multicast-Datenverkehr zur Verfügung.
Bevor ein Paket von der Eingangspipeline übertragen wird, muss das Paket für die Übertragung über die Fabric geplant werden. Der Eingangs-Scheduler sendet eine Kreditanfrage an den Ausgangs-Scheduler, der sich im Ausgangs-Datenverkehrsmanagement-Block befindet. Wenn der Manager für eingehenden Datenverkehr eine Gutschrift erhält, sendet er Datenverkehr an den Prozessor für eingehende Übertragungspakete. Wenn der Ausgangspuffer voll ist, wird der Datenverkehr in der dedizierten Warteschlange gepuffert, die durch den Ausgangsport und die Datenverkehrsklasse dargestellt wird.
Im Allgemeinen sind input discard aus den folgenden Gründen für verschiedene Nexus-Hardware sichtbar
PID |
N9K-X9636C-R |
N9K-X9636Q-R |
N9K-X9636C-RX |
N9K-X96136YC-R |
N3K-C36180YC-R |
N3K-C3636C-R |
In diesem Artikel wird der Wert für den Zähler "input discard" und alle internen HW-Leistungsindikatoren, die auf denselben Wert verweisen, geändert, da die Fehler während des Testens und der relevanten Befehle erhöht wurden.
Dieser Schritt ist später praktisch.
In unserem Fall ist es Warteschlange 7, die Standardwarteschlange - Es gibt insgesamt 8 Warteschlangen beim Eingang:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 10,616,663,796 | TX_TOTAL_BYTE_COUNTER = 41,136 | | RX_TOTAL_PKT_COUNTER = 10,659,301 | TX_TOTAL_PKT_COUNTER = 606 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 606 | | | NIF_PACKET_COUNTER = 10,659,302 | EPE_BYTES_COUNTER = 41,136 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 606 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 0 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 10,659,302 | FQP_PACKET_COUNTER = 606 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 606 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 48,408 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 0 | | IQM | PQP_DSCRD_MC_PKT_CNT = 0 | | | PQP_MC_BYTES_CNT = 0 | | ENQUEUE_PKT_CNT = 1,403,078 | EHP_UNICAST_PKT_CNT = 606 | | DEQUEUE_PKT_CNT = 1,403,078 | EHP_MC_HIGH_PKT_CNT = 0 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 9,256,829 | DELETED_PKT_CNT = 0 | | Rejects: PORT_AND_PG_STATUS | | | | RQP_PKT_CNT = 606 | | | RQP_DSCRD_PKT_CNT = 0 | | | PRP_PKT_DSCRD_TDM_CNT = 0 | | | PRP_SOP_DSCRD_UC_CNT = 0 | | | PRP_SOP_DSCRD_MC_CNT = 0 | | | PRP_SOP_DSCRD_TDM_CNT = 0 | | | EHP_MC_HIGH_DSCRD_CNT = 0 | | | EHP_MC_LOW_DSCRD_CNT = 0 | | | ERPP_LAG_PRUNING_DSCRD_CNT = 0 | | | ERPP_PMF_DISCARDS_CNT = 0 | | | ERPP_VLAN_MBR_DSCRD_CNT = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | | FDA | | | CELLS_IN_CNT_P1 = 0 | CELLS_OUT_CNT_P1 = 0 | | | CELLS_IN_CNT_P2 = 0 | CELLS_OUT_CNT_P2 = 0 | +-------------------------------------------+-------------------------------------------| CELLS_IN_CNT_P3 = 0 | CELLS_OUT_CNT_P3 = 0 | | IPT | CELLS_IN_TDM_CNT = 0 | CELLS_OUT_TDM_CNT = 0 | | | CELLS_IN_MESHMC_CNT = 0 | CELLS_OUT_MESHMC_CNT = 0 | | EGQ_PKT_CNT = 606 --> CELLS_IN_IPT_CNT = 606 | CELLS_OUT_IPT_CNT = 606 | | ENQ_PKT_CNT = 1,403,084 | EGQ_DROP_CNT = 0 | | FDT_PKT_CNT = 1,402,472 | EGQ_MESHMC_DROP_CNT = 0 | | CRC_ERROR_CNT = 0 | EGQ_TDM_OVF_DROP_CNT = 0 | | CFG_EVENT_CNT = 606 * | | | CFG_BYTE_CNT = 48,408 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | FDT | FDR | | IPT_DESC_CELL_COUNTER = 5,609,892 | P1_CELL_IN_CNT = 0 | | IRE_DESC_CELL_COUNTER = 0 | P2_CELL_IN_CNT = 0 | | | P3_CELL_IN_CNT = 0 | | TRANSMITTED_DATA_CELLS_COUNTER = 5,609,892 | CELL_IN_CNT_TOTAL = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | /|\ | J E R I C H O F A B R I C I N T E R F A C E | \|/ |
Wenn QUEUE_DELETED_PACKET_COUNTER größer als Null ist, wird angegeben, dass Pakete vom IQM (Ingress Queueing Manager)-Nachwarteschlangen GELÖSCHT wurden. Dies liegt daran, dass eine aktive Warteschlange keine Gutschriften erhält, die auf eine Fehlkonfiguration des Scheduling-Schemas hindeuten würden. Sie können dies über bcm-shell mod X "getReg IQM_QUEUE_DELETED_PACKET_COUNTER" überprüfen.
ENQ_DISCARDED_PACKET_COUNTER bedeutet, dass Pakete vor der Enqueue verworfen wurden. Sie können diesen Zählersatz auch im BCM sehen (Befehl wird beim Lesen gelöscht):
Sie können diese immer schnell bemerken, wenn Sie das hardwareinterne Fehlermodul X verwenden (Befehl löscht beim Lesen):
In diesem Beispiel wird Eth1/33 angezeigt. In einem Netzwerk ist der überlastete Ausgangsport noch nicht bekannt.
Dieser Befehl zeigt Details für den Flow für das Eingangs-VoQ für einen bestimmten Port an. Außerdem wird hier das aktuelle Guthaben des VoQ angezeigt.
Der VOQ des Ports wird folgendermaßen abgeleitet:
LCs basieren auf 0 - Modul 1 ist 0, Modul 2 ist 1 usw.
Pro LC gibt es 256 System-Port-IDs.
ID = (LC * System Port ID) + FP-Nummer
Eth1/9 = (0 * 256) + 9 = 9
VOQ-ID = 32 + (System-Port-ID * 8)
Eth1/9 = 32 + (9 x 8) = 104
Unsere VOQ für Eth1/9 wird daher 104 betragen, was mit der zuvor erfassten Ausgabe übereinstimmt.
Wenn die Warteschlange 303 ist, erinnern Sie sich, dass diese Warteschlangen tatsächlich ein Bereich sind, sodass sie 303 + 7 oder 303-7 sein kann. Es stellt sich die Frage, welcher Port über eine VOQ verfügt, die im Bereich von 296-303 oder alternativ 303-310 übereinstimmt?
Es ist bekannt, dass Warteschlange 7 auf Eth1/9 überlastet ist, also ist 303 tatsächlich der höchste seiner Reichweite, sodass der Bereich von 296-303 eine gut ausgebildete Schätzung ist.
Gleiches für Basis 0 anzeigen - Hier nicht für Kurzfristigkeit dargestellt; in der Voq-Spalte wird angezeigt, dass Ihr Interesse nicht an diesem ASIC liegt.
Beachten Sie einige Punkte in der obigen Ausgabe:
An diesem Punkt haben Sie den überlasteten Ausgangsport gefunden. Stellen Sie fest, ob ein falsches Hochladen im Netzwerk vorliegt, Sie haben das SPAN konfiguriert, und Ihr Zielport ist 1G, wenn Sie eine oder mehrere 10G-Schnittstellen beziehen, oder ob es sich um einen Engpass/ein Designproblem handelt.
Diese sind weiter fortgeschritten - werden unter normalen Szenarien nicht benötigt, um den über Egress Congested verbundenen Port zu finden.
attach module X show hardware internal jer-usd tm_debug asic <slot> module <module> show hardware internal jer-usd info voq [ asic <instance> ] [ port <port> ] [ ] show hardware internal jer-usd info non-empty voq asic [ <instance> ] [ ] show hardware internal jer-usd info voq-profile { QueueThreshold drop_p <dp> | OCBThreshold } [ asic <instance> ] [ port<port> ] [ ] show hardware internal jer-usd info voq-connector front-port <port> [ ] show hardware internal jer-usd stats vsq { front-port <port> | inband asic <slot> | recycle-port <port> asic <slot> } show hardware internal jer-usd ingress-vsq buffer-occupancy front-port <port> show hardware internal jer-usd info IQM { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ] show hardware internal jer-usd info SCH { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ]
bcm-shell mod X
diag cosq print_flow_and_up dest_id=<flow_id>
diag cosq voq id=<voqid> detailed=1
diag cosq qpair e2e ps=<id>
cosq conn ing
cosq conn egr
dump IPS_CR_BAL_TABLE <voqID>
getReg IQM_QUEUE_MAXIMUM_OCCUPANCY_QUEUE_SIZE
In dieser Topologie sendet der Traffic Generator 2 G Datenverkehr an jeden Server:
Überprüfen Sie schnell, welche Warteschlangen nicht leer sind. Beachten Sie, dass es 4 gibt:
Bestimmen Sie, zu welchen Schnittstellen diese Warteschlangen gehören - Aktivieren Sie zuerst ASIC 0 (es wird nur mit einer Schnittstelle gezeigt):
Wiederholen Sie den gleichen Prozess für die anderen drei Warteschlangenwerte: 247, 303 und 351.
Einstellen von Eth1/33 als SPAN-Zielport und Festlegen von Eth1/9 als SPAN-Quellport in RX-Richtung
Senden von Paketen mit SRC 10.10.10.10 und DEST 192.168.10.10, wobei Eth1/9 in 10.10.10.1/24 ist - dies führt nicht zu einer Input discard. Dieser Zähler wird jedoch angezeigt:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ _PACKET_COUNTER = 0 | DELETED_PKT_CNT = 12,027,201 | | | Discards: INVALID_OTM SRC_EQUAL_DEST +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Senden Sie Pakete mit SRC 10.10.10.10 und DEST 192.168.10.10, wobei Eth1/9 im Subnetz 10.10.10.1/24 und Eth1/33 im Subnetz 172.16.0.1/30 liegt. - Keine Drop-Zähler, keine input discard, auch wenn das Ziel unbekannt ist.
Senden von Paketen, bei denen Eth1/9 nur ein Wide-Trunk (oder Access-Port) ist - Dieser wird als Input discard registriert, während der Port in einen STP-Weiterleitungsstatus wechselt.
Nexus-R(config)# int e1/9
Nexus-R(config-if)# switchport mode trunk
Nexus-R# bcm-shell mod 1 "diag counters g" | i i --|IQM|ENQ_DISCARD|Rejects +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 1,678,949 | | IQM | PQP_DSCRD_MC_PKT_CNT = 11,369,033 | | ENQ_DISCARDED_PACKET_COUNTER = 1,289,182 | DELETED_PKT_CNT = 11,369,081 | | Rejects: QUEUE_NOT_VALID_STATUS | Discards: SRC_EQUAL_DEST | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Nexus-R# show span int e1/9
Vlan Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Desg BLK 2 128.9 P2p
VLAN0010 Desg BLK 2 128.9 P2p
<snip>
QUEUE_NOT_VALID_STATUS ist ein Tropfen aufgrund der Entscheidung des Packet Processor (PP), einen Eintrag zu verwerfen, oder ein ungültiges Ziel, das von den Packet Processor (PP) Blocks empfangen wurde.
Sendet man 10G+ an Eth1/9, würde dies zu einem anderen Tropftyp führen, da man Eth1/9 zuerst ausfüllt - Zählt immer noch als Input discard:
bcm-shell.0> diag counters g | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 53,913,106,009 | TX_TOTAL_BYTE_COUNTER = 1,164,231 | | RX_TOTAL_PKT_COUNTER = 54,145,395 | TX_TOTAL_PKT_COUNTER = 17,029 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 17,010 | | | NIF_PACKET_COUNTER = 54,145,476 | EPE_BYTES_COUNTER = 5,721,307 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 50,703 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 16,837 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 54,128,577 | FQP_PACKET_COUNTER = 50,703 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 50,683 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 5,216,716 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 20 | | IQM | PQP_DSCRD_MC_PKT_CNT = 20 | | | PQP_MC_BYTES_CNT = 2,079 | | ENQUEUE_PKT_CNT = 5,463,323 | EHP_UNICAST_PKT_CNT = 50,683 | | DEQUEUE_PKT_CNT = 5,594,400 | EHP_MC_HIGH_PKT_CNT = 20 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 48,716,055 | DELETED_PKT_CNT = 40 | | Rejects: VOQ_MX_QSZ_STATUS | | <snip>