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 Architektur zur Handhabung von CPU-Paketen und zeigt Ihnen, wie Sie die Ursachen für die hohe CPU-Auslastung auf Catalyst 4500-Switches identifizieren.
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
Catalyst Switches der Serie 4500
Catalyst Switches der Serie 4948
Hinweis: Dieses Dokument gilt nur für Switches, die auf der Cisco IOS® Software basieren.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Die Switches der Catalyst 4500 Serie, zu denen auch die Catalyst 4948 Switches gehören, verfügen über eine ausgeklügelte Paketverarbeitungsmethodik für CPU-gebundenen Datenverkehr. Ein häufig erkanntes Problem ist eine hohe CPU-Auslastung auf diesen Switches. Dieses Dokument enthält Details zur Architektur der CPU-Paketverarbeitung und zeigt Ihnen, wie Sie die Ursachen einer hohen CPU-Auslastung auf diesen Switches bestimmen. Das Dokument enthält auch einige gängige Netzwerk- oder Konfigurationsszenarien, die eine hohe CPU-Auslastung der Catalyst 4500 Serie verursachen
Bevor Sie sich die CPU-Paketverarbeitungsarchitektur ansehen und die Fehlerbehebung bei hoher CPU-Auslastung durchführen, müssen Sie sich mit den verschiedenen Verwendungsarten der CPU durch hardwarebasierte Weiterleitungs-Switches und Router auf der Basis der Cisco IOS Software vertraut machen. Der weit verbreitete Irrtum besteht darin, dass eine hohe CPU-Auslastung auf die Erschöpfung der Ressourcen auf einem Gerät und die Gefahr eines Absturzes hindeutet. Ein Kapazitätsproblem ist eines der Symptome einer hohen CPU-Auslastung auf Cisco IOS-Routern. Bei hardwarebasierten Forwarding-Switches wie dem Catalyst 4500 ist ein Kapazitätsproblem jedoch fast nie ein Symptom für eine hohe CPU-Auslastung. Der Catalyst 4500 ist für die Weiterleitung von Paketen in der Hardware Application-Specific Integrated Circuit (ASIC) und das Erreichen von Weiterleitungsgeschwindigkeiten von bis zu 102 Millionen Paketen pro Sekunde (Mpps) ausgelegt.
Die CPU der Catalyst Serie 4500 erfüllt folgende Funktionen:
Verwaltet konfigurierte Softwareprotokolle, beispielsweise:
Routing-Protokoll
Cisco Discovery Protocol (CDP)
Port Aggregation Protocol (PAgP)
VLAN Trunk Protocol (VTP)
Dynamic Trunking Protocol (DTP)
Programmkonfiguration/dynamische Einträge der Hardware-ASICs, z. B.:
Zugriffskontrolllisten (ACLs)
CEF-Einträge
Interne Verwaltung verschiedener Komponenten, z. B.:
Power over Ethernet (PoE) Line Cards
Netzteile
Lüftereinschub
Verwaltet den Zugriff auf den Switch, beispielsweise:
Telnet
Konsole
Simple Network Management Protocol (SNMP)
Leitet Pakete über den Software-Pfad weiter, z. B.:
Über Internetwork Packet Exchange (IPX) geroutete Pakete, die nur im Softwarepfad unterstützt werden
Maximum Transmission Unit (MTU)-Fragmentierung
Laut dieser Liste kann sich eine hohe CPU-Auslastung aus dem Empfang oder der Verarbeitung von Paketen durch die CPU ergeben. Einige der zur Verarbeitung gesendeten Pakete können für den Netzwerkbetrieb unverzichtbar sein. Ein Beispiel für diese wichtigen Pakete sind Bridge Protocol Data Unit (BPDUs) für Spanning Tree-Topologiekonfigurationen. Bei anderen Paketen kann es sich jedoch um softwareweitergeleiteten Datenverkehr handeln. Für diese Szenarien müssen die Switching-ASICs Pakete zur Verarbeitung an die CPU senden:
Pakete, die in die CPU kopiert werden, aber die ursprünglichen Pakete werden über Hardware weitergeleitet.
Ein Beispiel hierfür ist das MAC-Adressen-Learning für Hosts.
Pakete, die zur Verarbeitung an die CPU gesendet werden
Beispiele:
Routing-Protokoll-Updates
BPDU
Eine absichtliche oder unbeabsichtigte Flut von Datenverkehr
Pakete, die zur Weiterleitung an die CPU gesendet werden
Ein Beispiel sind Pakete, die IPX- oder AppleTalk-Routing erfordern.
Catalyst 4500 verfügt über einen integrierten QoS-Mechanismus (Quality of Service), um zwischen den Datenverkehrstypen zu unterscheiden, die für die CPU bestimmt sind. Der Mechanismus differenziert anhand der Paketinformationen von Layer 2 (L2)/Layer 3 (L3)/Layer 4 (L4). Die Supervisor Packet Engine verfügt über 16 Warteschlangen für verschiedene Arten von Paketen oder Ereignissen. Abbildung 1 zeigt diese Warteschlangen. In Tabelle 1 sind die Warteschlangen und die darin enthaltenen Pakettypen aufgeführt. Dank der 16 Warteschlangen kann der Catalyst 4500 die Pakete je nach Pakettyp oder Priorität in eine Warteschlange einreihen.
Abbildung 1: Catalyst 4500 verwendet mehrere CPU-Warteschlangen
Tabelle 1: Beschreibung der Catalyst 4500-Warteschlange
Warteschlangennummer | Warteschlangenname | Pakete in Warteschlange |
---|---|---|
0 | ESMP | ESMP1-Pakete (interne Management-Pakete) für die Line Card-ASICs oder andere Komponenten-Management-Module |
1 | Steuerung | L2-Kontrollebenenpakete wie STP, CDP, PAgP, LACP2 oder UDLD3 |
2 | Host-Lernen | Frames mit unbekannten Quell-MAC-Adressen, die zur Erstellung der L2-Weiterleitungstabelle auf die CPU kopiert werden |
3, 4, 5 | L3-Fwd am höchsten, L3-Fwd hoch/mittel, L3-Fwd niedrig | Pakete, die in Software weitergeleitet werden müssen, z. B. GRE4-Tunnel. Wenn ARP5 für die Ziel-IP-Adresse nicht aufgelöst wird, werden Pakete an diese Warteschlange gesendet. |
6, 7, 8 | L2-Fwd am höchsten,L2-Fwd hoch/mittel, L2-Fwd niedrig | Pakete, die als Ergebnis des Bridging weitergeleitet werden
|
9, 10 | L3 Rx hoch, L3 Rx niedrig | L3-Steuerungsebenen-Datenverkehr, z. B. Routing-Protokolle, der für CPU-IP-Adressen bestimmt ist. Beispiele: Telnet, SNMP und SSH8. |
11 | RPF-Fehler | Multicast-Pakete, die die RPF9-Prüfung nicht bestanden haben |
12 | ACL fwd(Snooping) | Pakete, die von den DHCP10-Snooping-, dynamischen ARP-Inspektions- oder IGMP11-Snooping-Funktionen verarbeitet werden |
13 | ACL-Protokoll, nicht erreichbar | Pakete, die einen ACE12 mit dem Schlüsselwort oder den Paketen erreichen, die aufgrund einer Ablehnung in einer Ausgabe-ACL oder des Fehlens einer Route zum Ziel verworfen wurden. Diese Pakete erfordern die Generierung von ICMP-Nachrichten, die nicht erreichbar sind. |
14 | ACL-SW-Verarbeitung | Pakete, die aufgrund eines Fehlens zusätzlicher ACL-Hardwareressourcen (z. B. TCAM13) für die Sicherheits-ACL an die CPU gesendet werden |
15 | MTU fehlgeschlagen/Ungültig | Pakete, die fragmentiert werden müssen, da die MTU-Größe der Ausgabeschnittstelle kleiner ist als die Paketgröße |
1ESMP = Auch Simple Management Protocol
2LACP = Link Aggregation Control Protocol
3UDLD = UniDirectional Link Detection
4GRE = generic routing encapsulation
5ARP = Address Resolution Protocol
6SVI = Switched Virtual Interface
7TTL = Time to Live
8SSH = Secure Shell Protocol
9RPF = Reverse Path Forwarding
10DHCP = Dynamic Host Configuration Protocol
11IGMP = Internet Group Management Protocol
12ACE = Access Control Entry.
13TCAM = Ternary Content Addressable Memory (Ternärer adressierbarer Speicher).
Diese Warteschlangen sind separate Warteschlangen:
L2 Fwd HighestorL3 Fwd Highest
L2 Fwd Hoch/MittelL3 Fwd Hoch/Mittel
L2 Fwd LowL3 Fwd Low
L3 Rx HighorL3 Rx Low
Pakete werden anhand des QoS-Labels, dem Differentiated Services Code Point (DSCP)-Wert vom IP Type of Service (ToS), in diese Warteschlangen eingereiht. Beispielsweise werden Pakete mit einem DSCP von 63 in die L3 Fwd Highest-Warteschlange gestellt. Sie können die Pakete, die für diese 16 Warteschlangen empfangen und verworfen werden, in der Ausgabe des Befehls show platform cpu packet statistics all sehen. Die Ausgabe dieses Befehls ist sehr lang. Führen Sie den Befehl show platform cpu packet statistics aus, um nur die Ereignisse anzuzeigen, die ungleich null sind. Ein alternativer Befehl ist der Befehl show platform cpuport. Verwenden Sie den Befehl show platform cupport nur, wenn Sie Cisco IOS Software 12.1(11)EW oder frühere Versionen verwenden. Dieser Befehl wurde seitdem verworfen. Dieser ältere Befehl war jedoch vor der Cisco IOS Software-Version 12.2(20)EWA Teil des Befehls show tech-support in Cisco IOS Software.
Verwenden Sie den Befehl show platform cpu packet statistics für die gesamte Fehlerbehebung.
Switch#show platform cpu packet statistics all !--- Output suppressed. Total packet queues 16 Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- Esmp 0 0 0 0 0 Control 48 0 0 0 0 Host Learning 0 0 0 0 0 L3 Fwd High 0 0 0 0 0 L3 Fwd Medium 0 0 0 0 0 L3 Fwd Low 0 0 0 0 0 L2 Fwd High 0 0 0 0 0 L2 Fwd Medium 0 0 0 0 0 L2 Fwd Low 0 0 0 0 0 L3 Rx High 0 0 0 0 0 L3 Rx Low 0 0 0 0 0 RPF Failure 0 0 0 0 0 ACL fwd(snooping) 0 0 0 0 0 ACL log, unreach 0 0 0 0 0 ACL sw processing 0 0 0 0 0 MTU Fail/Invalid 0 0 0 0 0 Packets Dropped by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- Esmp 0 0 0 0 0 Control 0 0 0 0 0 Host Learning 0 0 0 0 0 L3 Fwd High 0 0 0 0 0 L3 Fwd Medium 0 0 0 0 0 L3 Fwd Low 0 0 0 0 0 L2 Fwd High 0 0 0 0 0 L2 Fwd Medium 0 0 0 0 0 L2 Fwd Low 0 0 0 0 0 L3 Rx High 0 0 0 0 0 L3 Rx Low 0 0 0 0 0 RPF Failure 0 0 0 0 0 ACL fwd(snooping) 0 0 0 0 0 ACL log, unreach 0 0 0 0 0 ACL sw processing 0 0 0 0 0 MTU Fail/Invalid 0 0 0 0 0
Die CPU der Catalyst Serie 4500 weist den verschiedenen Warteschlangen, die in Tabelle 1 aufgeführt sind, Gewichtungen zu. Die CPU weist die Gewichtungen nach Wichtigkeit oder Typ und nach Verkehrspriorität oder DSCP zu. Die CPU bedient die Warteschlange auf der Grundlage der relativen Gewichtungen der Warteschlange. Wenn beispielsweise sowohl ein Steuerungspaket wie eine BPDU als auch eine ICMP-Echoanfrage ausstehen, verarbeitet die CPU zuerst das Steuerungspaket. Ein zu hoher Anteil an Datenverkehr mit niedriger Priorität oder weniger wichtigem Datenverkehr hindert die CPU nicht daran, das System zu verarbeiten oder zu verwalten. Dieser Mechanismus gewährleistet, dass das Netzwerk auch bei hoher CPU-Auslastung stabil bleibt. Diese Fähigkeit des Netzwerks, stabil zu bleiben, ist eine wichtige Information, die Sie verstehen müssen.
Es gibt noch ein weiteres sehr wichtiges Detail der Implementierung der Verarbeitung von Catalyst 4500-CPU-Paketen. Wenn die CPU bereits Pakete oder Prozesse mit hoher Priorität verarbeitet hat, aber für einen bestimmten Zeitraum mehr CPU-Reservezyklen aufweist, verarbeitet die CPU die Pakete in der Warteschlange mit niedriger Priorität oder führt Hintergrundprozesse mit geringerer Priorität durch. Eine hohe CPU-Auslastung als Folge von Paketverarbeitungs- oder Hintergrundprozessen mit niedriger Priorität wird als normal angesehen, da die CPU ständig versucht, die gesamte verfügbare Zeit zu nutzen. Auf diese Weise strebt die CPU eine maximale Leistung des Switches und des Netzwerks an, ohne die Stabilität des Switches zu beeinträchtigen. Der Catalyst 4500 betrachtet die CPU als nicht ausgelastet, es sei denn, die CPU wird zu 100 % für einen einzelnen Zeitsteckplatz verwendet.
Die Cisco IOS Software, Version 12.2(25)EWA2 und höher, hat den CPU-Paket- und Prozessbearbeitungsmechanismus und die Abrechnung verbessert. Verwenden Sie diese Versionen daher für Ihre Catalyst 4500-Bereitstellungen.
Nachdem Sie die Architektur und das Design der Paketverarbeitung für die Catalyst 4500 CPU verstanden haben, können Sie noch immer nachvollziehen, warum Ihre CPU-Auslastung für die Catalyst 4500 hoch ist. Der Catalyst 4500 verfügt über die Befehle und Tools, die erforderlich sind, um die Ursache der hohen CPU-Auslastung zu identifizieren. Nachdem Sie den Grund ermittelt haben, können die Administratoren eine der folgenden Aktionen ausführen:
Korrekturmaßnahme - Hierzu können Konfigurations- oder Netzwerkänderungen gehören oder die Erstellung einer Serviceanfrage des technischen Supports von Cisco zur weiteren Analyse.
Keine Aktion - Die Leistung des Catalyst 4500 entspricht der Erwartung. Die CPU weist eine hohe CPU-Auslastung auf, da die Supervisor Engine die CPU-Zyklen maximiert, um alle erforderlichen Aufgaben zur Software-Paketweiterleitung und im Hintergrund auszuführen.
Achten Sie darauf, den Grund für eine hohe CPU-Auslastung zu ermitteln, auch wenn Korrekturmaßnahmen nicht in allen Fällen erforderlich sind. Eine hohe CPU-Auslastung kann nur ein Symptom für ein Problem im Netzwerk sein. Eine Behebung der Ursache dieses Problems kann erforderlich sein, um die CPU-Auslastung zu senken.
Abbildung 2 zeigt die Fehlerbehebungsmethode, die verwendet werden muss, um die Ursache der hohen CPU-Auslastung bei Catalyst 4500 zu identifizieren.
Abbildung 2: Fehlerbehebungsverfahren für hohe CPU-Auslastung bei Catalyst Switches der Serie 4500
Die allgemeinen Schritte zur Fehlerbehebung sind wie folgt:
Geben Sie den Befehl show processes cpu ein, um die Cisco IOS-Prozesse zu identifizieren, die CPU-Zyklen beanspruchen.
Führen Sie den Befehl show platform health aus, um die plattformspezifischen Prozesse genauer zu identifizieren.
Wenn der hochaktive Prozess K2CpuMan Review ist, geben Sie den Befehl show platform cpu packet statistics ein, um die Art des Datenverkehrs zu identifizieren, der auf die CPU trifft.
Wenn die Aktivität nicht auf den K2CpuMan-Überprüfungsprozess zurückzuführen ist, überspringen Sie Schritt 4 und fahren Sie mit Schritt 5 fort.
Identifizieren Sie die Pakete, die auf die CPU treffen. Verwenden Sie dazu die Tools zur Fehlerbehebung, um den an die CPU gerichteten Datenverkehr zu analysieren, falls erforderlich.
Ein Beispiel für die zu verwendenden Tools zur Fehlerbehebung ist der CPU Switched Port Analyzer (SPAN).
Lesen Sie dieses Dokument und den AbschnittFehlerbehebung bei häufigen Problemen mit hoher CPU-Auslastung für häufige Ursachen.
Wenn Sie die Ursache immer noch nicht identifizieren können, wenden Sie sich an den technischen Support von Cisco.
Der erste wichtige Schritt besteht darin, die CPU-Auslastung Ihres Switches für die Konfiguration und die Netzwerkeinrichtung zu kennen. Verwenden Sie den Befehl show processes cpup, um die CPU-Auslastung auf dem Catalyst 4500-Switch zu identifizieren. Die kontinuierliche Aktualisierung der grundlegenden CPU-Nutzung kann erforderlich sein, wenn Sie weitere Konfigurationen zur Netzwerkeinrichtung hinzufügen oder wenn sich das Netzwerkverkehrsmuster ändert.Abbildung 2 zeigt diese Anforderung.
Diese Ausgabe stammt von einem voll bestückten Catalyst 4507R. Die Steady-State-CPU macht etwa 32 bis 38 Prozent aus. Dies ist erforderlich, um die Managementfunktionen für diesen Switch auszuführen:
Switch#show processes cpu CPU utilization for five seconds: 38%/1%; one minute: 32%; five minutes: 32% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 0 63 0 0.00% 0.00% 0.00% 0 Chunk Manager 2 60 50074 1 0.00% 0.00% 0.00% 0 Load Meter 3 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events !--- Output suppressed. 27 524 250268 2 0.00% 0.00% 0.00% 0 TTY Background 28 816 254843 3 0.00% 0.00% 0.00% 0 Per-Second Jobs 29 101100 5053 20007 0.00% 0.01% 0.00% 0 Per-minute Jobs 30 26057260 26720902 975 12.07% 11.41% 11.36% 0 Cat4k Mgmt HiPri 31 19482908 29413060 662 24.07% 19.32% 19.20% 0 Cat4k Mgmt LoPri 32 4468 162748 27 0.00% 0.00% 0.00% 0 Galios Reschedul 33 0 1 0 0.00% 0.00% 0.00% 0 Cisco IOS ACL Helper 34 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
Die CPU-Auslastung von fünf Sekunden wird ausgedrückt als:
x%/y%
Der Wert in % steht für die gesamte CPU-Auslastung und in % für die CPU, die auf Interrupt-Ebene ausgegeben wird. Konzentrieren Sie sich bei der Fehlerbehebung für Catalyst Switches der Serie 4500 nur auf die CPU-Auslastung insgesamt.
DieseShow-Prozesse cpuoutput zeigt, dass es zwei Prozesse gibt, die die CPU verwenden: Cat4k Mgmt HiPriandCat4k Mgmt LoPri. Bei diesen beiden Prozessen werden mehrere plattformspezifische Prozesse zusammengefasst, die die wesentlichen Managementfunktionen für den Catalyst 4500 ausführen. Diese Prozesse umfassen die Prozesskontrollebene sowie Datenpakete, die per Software weitergeleitet oder verarbeitet werden müssen.
Um festzustellen, welche der plattformspezifischen Prozesse die CPU im Kontext von Cat4k Mgmt HiPriandCat4k Mgmt LoPri verwenden, geben Sie den Befehl show platform health ein.
Jeder der plattformspezifischen Prozesse hat eine Soll/Soll-CPU-Auslastung. Wenn sich dieser Prozess innerhalb des Ziels befindet, führt die CPU den Prozess im Kontext mit hoher Priorität aus. In der Präsentation wird die cpucommand-Ausgabe für die Nutzung unter Cat4k Mgmt HiPri verarbeitet. Wenn ein Prozess die Ziel-/erwartete Auslastung überschreitet, wird dieser Prozess im Kontext mit niedriger Priorität ausgeführt. In der Präsentation wird die Ausgabe von cpucommand verarbeitet, um die zusätzliche Auslastung unter Cat4k Mgmt LoPri zu ermitteln. Dieser Cat4k Mgmt LoPriis wird auch verwendet, um Hintergrundprozesse und andere Prozesse mit niedriger Priorität auszuführen, wie z. B. Konsistenzprüfungen und das Lesen von Schnittstellenzählern. Dieser Mechanismus ermöglicht es der CPU, bei Bedarf Prozesse mit hoher Priorität auszuführen, und die verbleibenden CPU-Leerlaufzyklen werden für Prozesse mit niedriger Priorität verwendet. Die angestrebte CPU-Auslastung um einen kleinen Betrag oder einen kurzzeitigen Auslastungsspitzenwert zu überschreiten, ist kein Hinweis auf ein Problem, das untersucht werden muss.
Switch#show platform health %CPU %CPU RunTimeMax Priority Average %CPU Total Target Actual Target Actual Fg Bg 5Sec Min Hour CPU Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09 GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15 S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14 Stub-JobEventSchedul 10.00 12.09 10 6 100 500 14 13 9 396:35 StatValueMan Update 1.00 0.22 1 0 100 500 0 0 0 6:28 Pim-review 0.10 0.00 1 0 100 500 0 0 0 0:22 Ebm-host-review 1.00 0.00 8 0 100 500 0 0 0 0:05 Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:01 Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:00 Acl-Flattener e 1.00 0.00 10 0 100 500 0 0 0 0:00 KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:39 KxAclPathMan update 2.00 0.00 10 0 100 500 0 0 0 0:00 KxAclPathMan reprogr 1.00 0.00 2 0 100 500 0 0 0 0:00 TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00 K2CpuMan Review 30.00 10.19 30 28 100 500 14 13 9 397:11 K2AccelPacketMan: Tx 10.00 2.20 20 0 100 500 2 2 1 82:06 K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00 K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00 K2AclCamMan stale en 1.00 0.00 10 0 100 500 0 0 0 0:00 K2AclCamMan hw stats 3.00 1.04 10 5 100 500 1 1 0 39:36 K2AclCamMan kx stats 1.00 0.00 10 5 100 500 0 0 0 13:40 K2AclCamMan Audit re 1.00 0.00 10 5 100 500 0 0 0 13:10 K2AclPolicerTableMan 1.00 0.00 10 1 100 500 0 0 0 0:38 K2L2 Address Table R 2.00 0.00 12 5 100 500 0 0 0 0:00 K2L2 New Static Addr 2.00 0.00 10 1 100 500 0 0 0 0:00 K2L2 New Multicast A 2.00 0.00 10 5 100 500 0 0 0 0:01 K2L2 Dynamic Address 2.00 0.00 10 0 100 500 0 0 0 0:00 K2L2 Vlan Table Revi 2.00 0.00 12 9 100 500 0 0 0 0:01 K2 L2 Destination Ca 2.00 0.00 10 0 100 500 0 0 0 0:00 K2PortMan Review 2.00 0.72 15 11 100 500 1 1 0 37:22 Gigaport65535 Review 0.40 0.07 4 2 100 500 0 0 0 3:38 Gigaport65535 Review 0.40 0.08 4 2 100 500 0 0 0 3:39 K2Fib cam usage revi 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib IrmFib Review 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib Vrf Default Ro 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib AdjRepop Revie 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib Vrf Unpunt Rev 2.00 0.01 15 0 100 500 0 0 0 0:23 K2Fib Consistency Ch 1.00 0.00 5 2 100 500 0 0 0 29:25 K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21 K2FibAdjMan Host Mov 2.00 0.00 10 4 100 500 0 0 0 0:00 K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00 K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04 K2FibMulticast Entry 2.00 0.00 10 7 100 500 0 0 0 0:00 K2FibMulticast Irm M 2.00 0.00 10 7 100 500 0 0 0 0:00 K2FibFastDropMan Rev 2.00 0.00 7 0 100 500 0 0 0 0:00 K2FibPbr route map r 2.00 0.06 20 5 100 500 0 0 0 16:42 K2FibPbr flat acl pr 2.00 0.07 20 2 100 500 0 0 0 3:24 K2FibPbr consolidati 2.00 0.01 10 0 100 500 0 0 0 0:24 K2FibPerVlanPuntMan 2.00 0.00 15 4 100 500 0 0 0 0:00 K2FibFlowCache flow 2.00 0.01 10 0 100 500 0 0 0 0:23 K2FibFlowCache flow 2.00 0.00 10 0 100 500 0 0 0 0:00 K2FibFlowCache adj r 2.00 0.01 10 0 100 500 0 0 0 0:20 K2FibFlowCache flow 2.00 0.00 10 0 100 500 0 0 0 0:06 K2MetStatsMan Review 2.00 0.14 5 2 100 500 0 0 0 23:40 K2FibMulticast MET S 2.00 0.00 10 0 100 500 0 0 0 0:00 K2QosDblMan Rate DBL 2.00 0.12 7 0 100 500 0 0 0 4:52 IrmFibThrottler Thro 2.00 0.01 7 0 100 500 0 0 0 0:21 K2 VlanStatsMan Revi 2.00 1.46 15 7 100 500 2 2 1 64:44 K2 Packet Memory Dia 2.00 0.00 15 8 100 500 0 1 1 45:46 K2 L2 Aging Table Re 2.00 0.12 20 3 100 500 0 0 0 7:22 RkiosPortMan Port Re 2.00 0.73 12 7 100 500 1 1 1 52:36 Rkios Module State R 4.00 0.02 40 1 100 500 0 0 0 1:28 Rkios Online Diag Re 4.00 0.02 40 0 100 500 0 0 0 1:15 RkiosIpPbr IrmPort R 2.00 0.02 10 3 100 500 0 0 0 2:44 RkiosAclMan Review 3.00 0.06 30 0 100 500 0 0 0 2:35 MatMan Review 0.50 0.00 4 0 100 500 0 0 0 0:00 Slot 3 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 3 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 4 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 4 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 5 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 5 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 6 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 6 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 7 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 7 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 EthHoleLinecardMan(1 1.66 0.04 10 0 100 500 0 0 0 1:18 EthHoleLinecardMan(2 1.66 0.02 10 0 100 500 0 0 0 1:18 EthHoleLinecardMan(6 1.66 0.17 10 6 100 500 0 0 0 6:38 ------------- %CPU Totals 212.80 35.63
Theshow Platform HealthCommand bietet viele Informationen, die nur für einen Entwicklungsingenieur relevant sind. Um Probleme mit einer hohen CPU-Auslastung zu beheben, suchen Sie in der Ausgabespalte nach einem höheren Wert in der %CPU tatsächlich. Stellen Sie außerdem sicher, dass Sie einen Blick auf die rechte Seite der Zeile werfen, um die CPU-Auslastung dieses Prozesses in den durchschnittlichen CPU-Spalten von 1 Minute und 1 Stunde zu überprüfen. Manchmal erreichen Prozesse vorübergehend einen Spitzenwert, halten die CPU jedoch für lange Zeit nicht. Ein Teil der momentan hohen CPU-Auslastung findet während der Hardware-Programmierung oder -Optimierung der Programmierung statt. So ist beispielsweise ein Spitzenwert bei der CPU-Auslastung während der Hardwareprogrammierung einer großen ACL im TCAM normal.
In der Ausgabe des Befehls show platform health im AbschnittDie Befehle show cpu für Catalyst 4500-Switches, Stub-JobEventSchedulund K2CpuMan Reviewprozesse verwenden eine höhere Anzahl von CPU-Zyklen.Tabelle 2 enthält einige grundlegende Informationen zu den allgemeinen plattformspezifischen Prozessen, die in Ausgabe des Befehls show platformHealth.
Tabelle 2 - Beschreibung der plattformspezifischen Prozesse aus dem Befehl show platform health
Plattformspezifischer Prozessname | Beschreibung |
---|---|
Pim-Review | Verwaltung des Chassis-/Line Card-Status |
EBM | Ethernet-Bridge-Modul, z. B. für Alterung und Überwachung |
Acl-Flattener/K2AclMan | ACL-Zusammenführungsprozess |
KxAclPathMan - PathTagMan-Review | Verwaltung und Wartung des ACL-Status |
K2CpuMan Bewertung | Der Prozess, der die Weiterleitung von Softwarepaketen durchführt Wenn Sie aufgrund dieses Prozesses eine hohe CPU-Auslastung feststellen, untersuchen Sie die Pakete, die bei Verwendung des Befehls show platform cpu packet statistiticsauf die CPU treffen. |
K2AccelPacketMan | Der Treiber, der mit der Paket-Engine interagiert, um Pakete zu senden, die von der CPU bestimmt werden. |
K2AclCamMan | Verwaltung der Eingangs- und Ausgangs-TCAM-Hardware für QoS- und Sicherheitsfunktionen |
K2AclPolicerTableMan | Verwaltung der Eingabe- und Ausgaberichtlinien |
K2L2 | Stellt das L2-Weiterleitungs-Subsystem der Cisco IOS-Software Catalyst 4500 dar. Diese Prozesse sind für die Wartung der verschiedenen L2-Tabellen zuständig. |
K2PortMan Bewertung | Verwaltet die verschiedenen portbezogenen Programmierfunktionen |
K2Fib | FIB1-Management |
K2FibFlowCache | PBR2Cache-Verwaltung |
K2FibAdjMan | Management von FIB-Adjacency-Tabellen |
K2Fib-Multicast | Verwaltung von Multicast-FIB-Einträgen |
K2MetStatsMan Bewertung | Verwaltet MET3-Statistiken |
K2QosDblMan-Test | QoS-DBL4 verwalten |
IrmFibThrottler Thro | IP-Routing-Modul |
K2 L2-Veraltungstabelle Re | Verwaltet die L2-Alterungsfunktion |
GalChassisVP-Prüfung | Chassis-Statusüberwachung |
S2w-JobEventSchedule | Verwaltet die S2W5-Protokolle zur Überwachung des Line Card-Status |
Stub-JobEventSchedule | Stub ASIC-basierte Line Card-Überwachung und -Wartung |
RKIOSportMan Port Re | Überwachung und Wartung des Hafenzustands |
RKOS-Modulzustand R | Überwachung und Wartung von Line Cards |
EthHoleLinecardMan | Verwaltet GBIC6 in jeder Linecard |
1FIB = Forwarding Information Base
2PBR = richtlinienbasiertes Routing.
3MET = Multicast Expansion Table.
4DBL = Dynamic Buffer Limiting.
5S2W = seriell an Kabel.
6GBIC = Gigabit Interface Converter
In diesem Abschnitt werden einige der häufigsten Probleme bei der CPU-Auslastung auf Catalyst 4500-Switches behandelt.
Einer der häufigsten Gründe für die hohe CPU-Auslastung ist, dass die Catalyst 4500-CPU mit dem Paketprozess für softwareweitergeleitete Pakete oder Steuerungspakete beschäftigt ist. Beispiele für softwareweitergeleitete Pakete sind IPX- oder Kontrollpakete wie BPDUs. In der Regel wird eine kleine Anzahl dieser Pakete an die CPU gesendet. Eine konstant hohe Anzahl an Paketen kann jedoch auf einen Konfigurationsfehler oder ein Netzwerkereignis hinweisen. Sie müssen die Ursache von Ereignissen identifizieren, die zur Weiterleitung von Paketen zur Verarbeitung an die CPU führen. Mit dieser Identifizierung können Sie die Probleme mit der hohen CPU-Auslastung beheben.
Einige der häufigsten Gründe für die hohe CPU-Auslastung aufgrund von prozessgesteuerten Paketen sind:
Weitere Gründe für das Umschalten von Paketen auf die CPU sind:
MTU-Fragmentierung - Stellen Sie sicher, dass alle Schnittstellen entlang des Paketpfads die gleiche MTU haben.
ACL mit anderen als etablierten TCP-Flags
IP Version 6 (IPv6)-Routing - Dieses Routing wird nur über den Software-Switching-Pfad unterstützt.
GRE: Dies wird nur über den Software-Switching-Pfad unterstützt.
Verweigerung von Datenverkehr in der Eingangs- oder Ausgangsrouter-ACL (RACL)
Hinweis: Diese Option ist in Version 12.1(13)EW1 und späteren Versionen der Cisco IOS-Software auf den Listenpreis beschränkt.
Geben Sie den Befehl o ip unreachables unter der Schnittstelle der ACL ein.
Übermäßiger ARP- und DHCP-Datenverkehr erreicht die CPU zur Verarbeitung aufgrund einer großen Anzahl direkt verbundener Hosts
Wenn Sie einen DHCP-Angriff vermuten, verwenden Sie DCHP-Snooping, um den DHCP-Datenverkehr von einem bestimmten Host-Port zu begrenzen.
Übermäßiges SNMP Polling durch eine legitime oder fehlerhaft ausgeführte Endstation
Catalyst 4500 unterstützt 3.000 Spanning-Tree-Port-Instanzen oder aktive Ports im Per VLAN Spanning Tree+ (PVST+)-Modus. Die Unterstützung gilt für alle Supervisor Engines mit Ausnahme der Supervisor Engines II+ und II+TS sowie des Catalyst 4948. Die Supervisor Engines II+ und II+TS sowie der Catalyst 4948 unterstützen bis zu 1.500 Port-Instanzen. Wenn Sie diese STP-Instanzempfehlungen übertreffen, weist der Switch eine hohe CPU-Auslastung auf.
Dieses Diagramm zeigt einen Catalyst 4500 mit drei Trunk-Ports, die jeweils die VLANs 1 bis 100 übertragen. Dies entspricht 300 Spanning-Tree-Port-Instanzen. Im Allgemeinen können Sie Spanning-Tree-Port-Instanzen mit folgender Formel berechnen:
Total number of STP instances = Number of access ports + Sum of all VLANs that are carried in each of the trunks
Im Diagramm gibt es keine Access-Ports, aber die drei Trunks übertragen die VLANs 1 bis 100:
Total number of STP instances = 0 + 100 + 100 + 100 = 300
Schritt 1: Überprüfen Sie mit dem Befehl auf show processes cpu den Cisco IOS-Prozess.
In diesem Abschnitt werden die Befehle beschrieben, die ein Administrator verwendet, um das Problem der hohen CPU-Auslastung einzugrenzen. Wenn Sie den Befehl show processes cpu ausführen, können Sie sehen, dass zwei Hauptprozesse, Cat4k Mgmt LoPriandSpanning Tree, primär die CPU verwenden. Nur anhand dieser Informationen wissen Sie, dass der Spanning Tree-Prozess einen beträchtlichen Teil der CPU-Zyklen beansprucht.
Switch#show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 Cisco IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
!--- Output suppressed.
41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
Schritt 2: Suchen Sie mit dem Befehl show platform health nach dem Catalyst 4500-spezifischen Prozess.
Um zu verstehen, welcher plattformspezifische Prozess die CPU beansprucht, geben Sie den Befehl show platform health ein. Aus dieser Ausgabe können Sie sehen, dass der K2CpuMan Reviewprozess, ein Job zur Verarbeitung von CPU-gebundenen Paketen, die CPU verbraucht:
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Geben Sie den
show platform cpu packet statisticsBefehl ein, um zu überprüfen, welche CPU-Warteschlange das CPU-gebundene Paket empfängt. Die Ausgabe in diesem Abschnitt zeigt, dass die Steuerwarteschlange viele Pakete empfängt. Verwenden Sie die Informationen in Tabelle 1 und die Schlussfolgerung, die Sie in Schritt 1 gezogen haben. Sie können bestimmen, dass die von der CPU verarbeiteten Pakete und der Grund für die hohe CPU-Auslastung die BPDU-Verarbeitung sind.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 202760 196 173 128 28
Control 388623 2121 1740 598 16
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 17918 0 19 24 3
Schritt 4: Identifizieren der Ursache
Geben Sie den
show spanning-tree summaryBefehl ein. Sie können überprüfen, ob der Empfang von BPDUs auf eine hohe Anzahl von Spanning-Tree-Port-Instanzen zurückzuführen ist. Die Ausgabe identifiziert eindeutig die Ursache:
Switch#show spanning-tree summary
Switch is in pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
!--- Output suppressed.
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
2994 vlans 0 0 0 5999 5999
Es gibt eine große Anzahl von VLANs mit der PVST+-Moduskonfiguration. Um das Problem zu beheben, ändern Sie den STP-Modus in Multiple Spanning Tree (MST). In einigen Fällen ist die Anzahl der STP-Instanzen hoch, da eine hohe Anzahl von VLANs auf allen Trunk-Ports weitergeleitet wird. In diesem Fall müssen Sie die VLANs, die nicht erforderlich sind, manuell vom Trunk entfernen, um die Anzahl der aktiven STP-Ports deutlich unter den empfohlenen Wert zu senken.
Tipp: Stellen Sie sicher, dass Sie die IP-Telefon-Ports nicht als Trunk-Ports konfigurieren. Dies ist eine häufige Fehlkonfiguration. Konfigurieren von IP-Telefon-Ports mit einer Sprach-VLAN-Konfiguration Bei dieser Konfiguration wird ein Pseudo-Trunk erstellt. Sie müssen die nicht benötigten VLANs jedoch nicht manuell entfernen. Weitere Informationen zur Konfiguration von Sprach-Ports finden Sie imKonfigurationsleitfaden für Sprachschnittstellen-Software. IP-Telefone, die nicht von Cisco stammen, unterstützen diese Sprach-VLAN- oder Hilfs-VLAN-Konfiguration nicht. Sie müssen die Ports mit IP-Telefonen von anderen Anbietern manuell bereinigen.
ICMP-Umleitungen; Routing von Paketen über dieselbe Schnittstelle
Das Routing von Paketen über dieselbe Schnittstelle oder von ein- und ausgehenden Datenverkehr über dieselbe L3-Schnittstelle kann zu einer ICMP-Umleitung durch den Switch führen. Wenn der Switch erkennt, dass sich das nächste Hop-Gerät zum endgültigen Ziel im gleichen Subnetz befindet wie das sendende Gerät, generiert er eine ICMP-Umleitung zur Quelle. Die Umleitungsmeldungen weisen die Quelle an, das Paket direkt an das nächste Hop-Gerät zu senden. Die Meldungen zeigen an, dass das nächste Hop-Gerät eine bessere Route zum Ziel hat, eine Route, die um einen Hop kleiner ist als dieser Switch.
In dem Diagramm in diesem Abschnitt kommuniziert PC A mit dem Webserver. Das Standard-Gateway von PC A verweist auf die IP-Adresse der VLAN 100-Schnittstelle. Der nächste Hop-Router, über den der Catalyst 4500 das Ziel erreicht, befindet sich jedoch im gleichen Subnetz wie PC A. Der beste Weg ist in diesem Fall direkt an "Router" zu senden. Catalyst 4500 sendet eine ICMP-Umleitungsnachricht an PC A. In der Nachricht wird PC A angewiesen, die für den Webserver bestimmten Pakete über einen Router anstatt über Catalyst 4500 zu senden. In den meisten Fällen reagieren die Endgeräte jedoch nicht auf die ICMP-Umleitung. Die fehlende Antwort führt dazu, dass der Catalyst 4500 eine Menge CPU-Zyklen für die Generierung dieser ICMP-Umleitungen für alle Pakete verbringt, die der Catalyst über dieselbe Schnittstelle weiterleitet wie die eingehenden Pakete.
ICMP-Umleitung ist standardmäßig aktiviert. Um sie zu deaktivieren, verwenden Sie den
ip icmp redirectsBefehl. Geben Sie den Befehl unter der entsprechenden SVI- oder L3-Schnittstelle ein.
Hinweis: Da es sich um einen Standardbefehl ip icmp redirects handelt, wird er in der show running-configuration Befehlsausgabe nicht angezeigt.
Schritt 1: Suchen Sie mit dem show processes cpu Befehl nach dem Cisco IOS-Prozess.
Geben Sie den
show processes cpu Befehl ein. Sie können sehen, dass zwei Hauptprozesse, Cat4k Mgmt LoPriandIP Input, primär die CPU verwenden. Nur mit diesen Informationen wissen Sie, dass der Prozess von IP-Paketen einen beträchtlichen Teil der CPU ausmacht.
Switch#show processes cpu
CPU utilization for five seconds: 38%/1%; one minute: 32%; five minutes: 32%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 63 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 60 50074 1 0.00% 0.00% 0.00% 0 Load Meter
3 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events
!--- Output suppressed.
27 524 250268 2 0.00% 0.00% 0.00% 0 TTY Background
28 816 254843 3 0.00% 0.00% 0.00% 0 Per-Second Jobs
29 101100 5053 20007 0.00% 0.01% 0.00% 0 Per-minute Jobs
30 26057260 26720902 975 5.81% 6.78% 5.76% 0 Cat4k Mgmt HiPri
31 19482908 29413060 662 19.64% 18.20% 20.48% 0 Cat4k Mgmt LoPri
!--- Output suppressed.show platform health
35 60 902 0 0.00% 0.00% 0.00% 0 DHCP Snooping 36 504625304 645491491 781 72.40% 72.63% 73.82% 0 IP Input
Schritt 2: Suchen Sie mit dem show platform health Befehl nach dem Catalyst 4500-spezifischen Prozess.
Die Ausgabe des
show platform healthBefehls bestätigt die Verwendung der CPU zur Verarbeitung von CPU-gebundenen Paketen.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 330.00 19.18 150 79 25 500 20 19 18 5794:08
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Geben Sie den
show platform cpu packet statisticsBefehl ein, um zu überprüfen, welche CPU-Warteschlange das CPU-gebundene Paket empfängt. Wie Sie sehen, empfängt die L3 Fwd Lowqueue einen großen Teil des Datenverkehrs.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 2 2 2 2
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 4717094264 3841 3879 3873 3547
L2 Fwd Medium 1 0 0 0 0
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Schritt 4: Identifizieren der Ursache
Verwenden Sie in diesem Fall das CPU-SPAN, um den Datenverkehr zu bestimmen, der auf die CPU trifft. Informationen über CPU SPAN finden Sie im Abschnitt Tool 1: Überwachen des CPU-Datenverkehrs mit SPAN - Cisco IOS Software, Version 12.1(19)EW und höher dieses Dokuments. Führen Sie mithilfe des
show running-configurationBefehls eine Analyse des Datenverkehrs und eine Konfiguration durch. In diesem Fall wird ein Paket über dieselbe Schnittstelle geroutet, was zur Ausgabe einer ICMP-Umleitung für jedes Paket führt. Diese Hauptursache ist einer der häufigsten Gründe für die hohe CPU-Auslastung auf dem Catalyst 4500.
Sie können davon ausgehen, dass das Sourcing-Gerät auf die vom Catalyst 4500 gesendete ICMP-Umleitung reagiert und den nächsten Hop für das Ziel ändert. Nicht alle Geräte reagieren jedoch auf eine ICMP-Umleitung. Wenn das Gerät nicht reagiert, muss der Catalyst 4500 Umleitungen für jedes Paket senden, das der Switch vom sendenden Gerät empfängt. Diese Umleitungen können einen großen Teil der CPU-Ressourcen beanspruchen. Die Lösung besteht darin, die ICMP-Umleitung zu deaktivieren. Geben Sie den
no ip redirectsBefehl unter den Schnittstellen ein.
Dieses Szenario kann auftreten, wenn Sie auch sekundäre IP-Adressen konfiguriert haben. Wenn Sie die sekundären IP-Adressen aktivieren, wird die IP-Umleitung automatisch deaktiviert. Stellen Sie sicher, dass Sie die IP-Umleitungen nicht manuell aktivieren.
Wie dieser Abschnitt "ICMP-Umleitungen; Routing-Pakete an derselben Schnittstelle" zeigt, reagieren die meisten Endgeräte nicht auf ICMP-Umleitungen. Deaktivieren Sie diese Funktion daher in der Regel.
IPX oder AppleTalk Routing
Der Catalyst 4500 unterstützt IPX- und AppleTalk-Routing nur über den Software-Weiterleitungspfad. Bei der Konfiguration solcher Protokolle ist eine höhere CPU-Auslastung normal.
Hinweis: Das Switching von IPX- und AppleTalk-Datenverkehr im selben VLAN erfordert kein Prozess-Switching. Nur Pakete, die geroutet werden müssen, erfordern eine Software-Pfadweiterleitung.
Schritt 1: Überprüfen Sie mit dem show processes cpu Befehl, ob der Cisco IOS-Prozess funktioniert.
Geben Sie den
show processes cpu Befehl ein, um zu überprüfen, welcher Cisco IOS-Prozess die CPU beansprucht. Beachten Sie in dieser Befehlsausgabe, dass der oberste Prozess der Cat4k Mgmt LoPri ist:
witch#show processes cpu
CPU utilization for five seconds: 87%/10%; one minute: 86%; five minutes: 87%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 53 75 0.00% 0.00% 0.00% 0 Chunk Manager
!--- Output suppressed.
25 8008 1329154 6 0.00% 0.00% 0.00% 0 Per-Second Jobs
26 413128 38493 10732 0.00% 0.02% 0.00% 0 Per-minute Jobs
27 148288424 354390017 418 2.60% 2.42% 2.77% 0 Cat4k Mgmt HiPri
28 285796820 720618753 396 50.15% 59.72% 61.31% 0 Cat4k Mgmt LoPri
Schritt 2: Suchen Sie mit dem show platform health Befehl nach dem Catalyst 4500-spezifischen Prozess.
Die Ausgabe des
show platform healthBefehls bestätigt die Verwendung der CPU zur Verarbeitung von CPU-gebundenen Paketen.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 4 100 500 0 0 0 0:00
K2CpuMan Review 30.00 27.39 30 53 100 500 42 47 42 4841:
K2AccelPacketMan: Tx 10.00 8.03 20 0 100 500 21 29 26 270:4
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Um die Art des Datenverkehrs zu bestimmen, der auf die CPU trifft, geben Sie den
show platform cpu packet statisticsBefehl ein.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 2 2 2 2
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 1582414 1 1 1 1
L2 Fwd Medium 1 0 0 0 0
L2 Fwd Low 576905398 1837 1697 1938 1515
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Schritt 4: Identifizieren der Ursache
Da der Administrator IPX- oder AppleTalk-Routing konfiguriert hat, muss die Ursache einfach identifiziert werden können. Um dies zu bestätigen, verwenden Sie SPAN für den CPU-Datenverkehr, und stellen Sie sicher, dass der angezeigte Datenverkehr dem erwarteten Datenverkehr entspricht. Informationen über CPU SPAN finden Sie im Abschnitt Tool 1: Überwachen des CPU-Datenverkehrs mit SPAN - Cisco IOS Software, Version 12.1(19)EW und höher dieses Dokuments.
In diesem Fall muss der Administrator die Baseline-CPU auf den aktuellen Wert aktualisieren. Die CPU der Catalyst Serie 4500 verhält sich wie erwartet, wenn die CPU Software-Switched-Pakete verarbeitet.
Host-Lernen
Der Catalyst 4500 erkennt die MAC-Adressen verschiedener Hosts, wenn die MAC-Adresse nicht bereits in der MAC-Adresstabelle vorhanden ist. Die Switching-Engine leitet eine Kopie des Pakets mit der neuen MAC-Adresse an die CPU weiter.
Alle VLAN-Schnittstellen (Layer 3) verwenden die Hardware-Adresse der Chassis-Basis als MAC-Adresse. Daher gibt es keinen Eintrag in der MAC-Adresstabelle, und die an diese VLAN-Schnittstellen gerichteten Pakete werden nicht zur Verarbeitung an die CPU gesendet.
Wenn zu viele neue MAC-Adressen für den Switch ermittelt werden müssen, kann dies zu einer hohen CPU-Auslastung führen.
Schritt 1: Überprüfen Sie mit dem show processes cpu Befehl, ob der Cisco IOS-Prozess funktioniert.
Geben Sie
show processes cpuden Befehl ein, um zu überprüfen, welcher Cisco IOS-Prozess die CPU beansprucht. Beachten Sie in dieser Befehlsausgabe, dass der oberste Prozess der Cat4k Mgmt LoPri ist:
Switch#show processes cpu
CPU utilization for five seconds: 89%/1%; one minute: 74%; five minutes: 71%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 53 75 0.00% 0.00% 0.00% 0 Chunk Manager
!--- Output suppressed.
25 8008 1329154 6 0.00% 0.00% 0.00% 0 Per-Second Jobs
26 413128 38493 10732 0.00% 0.02% 0.00% 0 Per-minute Jobs
27 148288424 354390017 418 26.47% 10.28% 10.11% 0 Cat4k Mgmt HiPri
28 285796820 720618753 396 52.71% 56.79% 55.70% 0 Cat4k Mgmt LoPri
Schritt 2: Suchen Sie mit dem Befehl show platform health nach dem Catalyst 4500-spezifischen Prozess.
Die Ausgabe des Befehls show platform health bestätigt die Verwendung der CPU zur Verarbeitung von CPU-gebundenen Paketen.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 4 100 500 0 0 0 0:00
K2CpuMan Review 30.00 46.88 30 47 100 500 30 29 21 265:01
K2AccelPacketMan: Tx 10.00 8.03 20 0 100 500 21 29 26 270:4
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Um die Art des Datenverkehrs zu bestimmen, der auf die CPU trifft, geben Sie den Befehl show platform cpu packet statistics ein.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 1328 1808 1393 1309
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 1582414 1 1 1 1
L2 Fwd Medium 1 0 0 0 0
L2 Fwd Low 576905398 37 7 8 5
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Schritt 4: Identifizieren der Ursache
Die Ausgabe des
show platform healthBefehls zeigt an, dass die CPU viele neue MAC-Adressen erkennt. Diese Situation ist häufig das Ergebnis einer instabilen Netzwerktopologie. Wenn sich beispielsweise die Spanning-Tree-Topologie ändert, generiert der Switch Benachrichtigungen zu Topologieänderungen (TCNs). Das Problem der TCNs reduziert die Alterungszeit im PVST+-Modus auf 15 Sekunden. MAC-Adresseinträge werden geleert, wenn die Adressen nicht innerhalb der Zeitspanne wieder abgerufen werden. Im Fall von Rapid STP (RSTP) (IEEE 802.1w) oder MST (IEEE 802.1s) werden die Einträge sofort veraltet, wenn die TCN von einem anderen Switch stammt. Dieses Alter führt dazu, dass MAC-Adressen neu gelernt werden. Dies ist kein großes Problem, wenn die Topologieänderungen selten sind. Es kann jedoch zu viele Topologieänderungen geben, da die Verbindung wechselt, ein Switch defekt ist oder die Host-Ports für PortFast nicht aktiviert sind. Es kann zu einer großen Anzahl von MAC-Tabellenleeren und anschließendem erneuten Lernen kommen. Der nächste Schritt bei der Ursachenidentifizierung besteht in der Fehlerbehebung im Netzwerk. Der Switch funktioniert wie erwartet und sendet die Pakete zur CPU, um die Host-Adresse zu ermitteln. Identifizieren und beheben Sie das fehlerhafte Gerät, das zu übermäßigen TCNs führt.
Ihr Netzwerk kann über eine Vielzahl von Geräten verfügen, die Datenverkehr in Spitzenzeiten senden. Dies führt dazu, dass MAC-Adressen veraltet sind und anschließend auf dem Switch neu abgerufen werden. Erhöhen Sie in diesem Fall die Alterungszeit der MAC-Adresstabelle, um für eine gewisse Entlastung zu sorgen. Bei einer längeren Alterungszeit behalten die Switches die MAC-Adressen des Geräts vor dem Alter noch längere Zeit in der Tabelle.
Vorsicht: Nehmen Sie diese Altersänderung nur nach sorgfältiger Überlegung vor. Die Änderung kann zu einem schwarzen Loch im Datenverkehr führen, wenn Sie Geräte in Ihrem Netzwerk haben, die mobil sind.
Keine Hardware-Ressourcen (TCAM) für Sicherheits-ACL
Der Catalyst 4500 programmiert die konfigurierten ACLs mithilfe des Cisco TCAM. Der TCAM ermöglicht die Anwendung der ACLs im Hardware-Weiterleitungspfad. Die Leistung des Switches mit oder ohne ACLs im Weiterleitungspfad wird nicht beeinträchtigt. Die Leistung ist trotz der Größe der ACL konstant, da die Leistung der ACL-Suchen mit der Leitungsgeschwindigkeit erfolgt. Der TCAM ist jedoch eine begrenzte Ressource. Wenn Sie daher zu viele ACL-Einträge konfigurieren, überschreiten Sie die TCAM-Kapazität.Tabelle 3 zeigt die Anzahl der TCAM-Ressourcen, die auf jeder der Catalyst 4500 Supervisor Engines und Switches verfügbar sind.
Tabelle 3: TCAM-Kapazität der Catalyst 4500 Supervisor Engines/Switches
Produkt | Funktion TCAM (pro Richtung) | QoS-TCAM (pro Richtung) |
---|---|---|
Supervisor Engine II+/II+TS | 8192 Einträge mit 1024 Masken | 8192 Einträge mit 1024 Masken |
Supervisor Engine III/IV/V und Catalyst 4948 | 16.384 Einträge mit 2048 Masken | 16.384 Einträge mit 2048 Masken |
Supervisor Engine V-10GE und Catalyst 4948-10GE | 16.384 Einträge mit 16.384 Masken | 16.384 Einträge mit 16.384 Masken |
Der Switch verwendet die TCAM-Funktion, um die Sicherheits-ACL, z. B. RACL und VLAN ACL (VACL), zu programmieren. Der Switch verwendet den TCAM auch für Sicherheitsfunktionen wie IP Source Guard (IPSG) für dynamische Zugriffskontrolllisten. Der Switch verwendet den QoS-TCAM, um Klassifizierungs- und Richtlinienzuweisung-ACLs zu programmieren.
Wenn beim Programmieren einer Sicherheits-ACL auf dem Catalyst 4500 keine TCAM-Ressourcen mehr verfügbar sind, erfolgt eine teilweise Anwendung der ACL über den Softwarepfad. Die Pakete, die auf diese ACEs zugreifen, werden in einer Software verarbeitet, was zu einer hohen CPU-Auslastung führt. Die ACL wird von oben nach unten programmiert. Mit anderen Worten: Wenn die ACL nicht in den TCAM passt, ist der ACE im unteren Teil der ACL wahrscheinlich nicht im TCAM programmiert.
Diese Warnmeldung wird angezeigt, wenn ein TCAM-Überlauf auftritt:
%C4K_HWACLMAN-4-ACLHWPROGERRREASON: (Suppressed 1times) Input(null, 12/Normal)
Security: 140 - insufficient hardware TCAM masks.
%C4K_HWACLMAN-4-ACLHWPROGERR: (Suppressed 4 times) Input Security: 140 - hardware TCAM
limit, some packet processing can be software switched.
Diese Fehlermeldung wird in der Ausgabe des Befehls how logging angezeigt. Die Meldung gibt eindeutig an, dass eine gewisse Softwareverarbeitung stattfinden kann und damit eine hohe CPU-Auslastung vorliegen kann.
Hinweis: Wenn Sie eine große ACL ändern, wird diese Meldung kurz angezeigt, bevor die geänderte ACL wieder im TCAM programmiert wird.
Schritt 1: Suchen Sie mit dem Befehl show processes cpu nach dem Cisco IOS-Prozess.
Stellen Sie den Prozess cpucommand aus. Wie Sie sehen, ist die CPU-Auslastung hoch, da der Cat4k Mgmt LoPriprocess die meisten CPU-Zyklen beansprucht.
Switch#show processes cpu
CPU utilization for five seconds: 99%/0%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 11 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9716 632814 15 0.00% 0.00% 0.00% 0 Load Meter
3 780 302 2582 0.00% 0.00% 0.00% 0 SpanTree Helper
!--- Output suppressed.
23 18208 3154201 5 0.00% 0.00% 0.00% 0 TTY Background
24 37208 3942818 9 0.00% 0.00% 0.00% 0 Per-Second Jobs
25 1046448 110711 9452 0.00% 0.03% 0.00% 0 Per-minute Jobs
26 175803612 339500656 517 4.12% 4.31% 4.48% 0 Cat4k Mgmt HiPri
27 835809548 339138782 2464 86.81% 89.20% 89.76% 0 Cat4k Mgmt LoPri
28 28668 2058810 13 0.00% 0.00% 0.00% 0 Galios Reschedul
Schritt 2: Überprüfen Sie mit dem show platform health Befehl, ob der spezifische Catalyst 4500-Prozess vorliegt.
Geben Sie den
show platform healthBefehl ein. Sie können sehen, dass der K2CpuMan Review, ein Job zur Verarbeitung von CPU-gebundenen Paketen, die CPU verwendet.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.01 2 0 100 500 0 0 0 13:45
GalChassisVp-review 3.00 0.20 10 16 100 500 0 0 0 88:44
S2w-JobEventSchedule 10.00 0.57 10 7 100 500 1 0 0 404:22
Stub-JobEventSchedul 10.00 0.00 10 0 100 500 0 0 0 0:00
StatValueMan Update 1.00 0.09 1 0 100 500 0 0 0 91:33
Pim-review 0.10 0.00 1 0 100 500 0 0 0 4:46
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 14:01
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:20
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:01
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:04
KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:21
KxAclPathMan update 2.00 0.00 10 6 100 500 0 0 0 0:05
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 14 100 500 0 0 0 0:18
K2CpuMan Review 30.00 91.31 30 92 100 500 128 119 84 13039:02
K2AccelPacketMan: Tx 10.00 2.30 20 0 100 500 2 2 2 1345:30
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Sie müssen genauer verstehen, welche CPU-Warteschlange und somit welche Art von Datenverkehr die CPU-Warteschlange erreicht. Stellen Sie den Befehl show platform cpu packet statistics aus. Wie Sie sehen, empfängt die ACL-sw-Verarbeitungswarteschlange eine hohe Anzahl an Paketen. Daher ist der TCAM-Überlauf die Ursache für dieses Problem mit der hohen CPU-Auslastung.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 57902635 22 16 12 3
Host Learning 464678 0 0 0 0
L3 Fwd Low 623229 0 0 0 0
L2 Fwd Low 11267182 7 4 6 1
L3 Rx High 508 0 0 0 0
L3 Rx Low 1275695 10 1 0 0
ACL fwd(snooping) 2645752 0 0 0 0
ACL log, unreach 51443268 9 4 5 5
ACL sw processing 842889240 1453 1532 1267 1179
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
L2 Fwd Low 3270 0 0 0 0
ACL sw processing 12636 0 0 0 0
Schritt 4: Beheben des Problems
In Schritt 3 haben Sie die Ursache in diesem Szenario ermittelt. Entfernen Sie die ACL, die den Überlauf verursacht hat, oder minimieren Sie die ACL, um einen Überlauf zu vermeiden. Lesen Sie außerdem die Konfigurationsanleitung für die Konfiguration der Netzwerksicherheit mit ACLs, um die ACL-Konfiguration und -Programmierung in der Hardware zu optimieren.
Das Protokollschlüsselwort in der ACL
Catalyst 4500 unterstützt die Protokollierung von Paketdetails, die einen bestimmten ACL-Eintrag betreffen. Übermäßige Protokollierung kann jedoch zu einer hohen CPU-Auslastung führen. Vermeiden Sie die Verwendung von FLOGkeywords, außer während der Datenverkehrsanalyse. Während der Datenverkehrsanalyse identifizieren Sie den Datenverkehr, der durch Ihr Netzwerk fließt und für den Sie keine expliziten ACEs konfiguriert haben. Verwenden Sie das Schlüsselwort nicht, um Statistiken zu sammeln. Ab Version 12.1(13)EW der Cisco IOS Software sind die Meldungen tariflimitiert. Wenn Sie Nachrichten zum Zählen der Anzahl der Pakete verwenden, die mit der ACL übereinstimmen, ist die Anzahl nicht korrekt. Verwenden Sie stattdessen den
show access-listBefehl für genaue Statistiken. Die Identifizierung dieser Ursache ist einfacher, da eine Überprüfung der Konfiguration oder der Protokollmeldungen auf die Verwendung der ACL-Protokollierungsfunktion hinweisen kann.
Schritt 1: Suchen Sie mit dem Befehl show processes cpu nach dem Cisco IOS-Prozess.
Geben Sie den Befehl
show processes cpuein, um zu überprüfen, welcher Cisco IOS-Prozess die CPU beansprucht. In dieser Befehlsausgabe finden Sie, dass der oberste Prozess der Cat4k Mgmt LoPri ist:
Switch#show processes cpu
CPU utilization for five seconds: 99%/0%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 11 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9716 632814 15 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
26 175803612 339500656 517 4.12% 4.31% 4.48% 0 Cat4k Mgmt HiPri
27 835809548 339138782 2464 86.81% 89.20% 89.76% 0 Cat4k Mgmt LoPri
28 28668 2058810 13 0.00% 0.00% 0.00% 0 Galios Reschedul
Schritt 2: Suchen Sie mit dem Befehl show platform health nach dem Catalyst 4500-spezifischen Prozess.
Überprüfen Sie den plattformspezifischen Prozess, der die CPU verwendet. Geben Sie den
show platform healthBefehl ein. Beachten Sie in der Ausgabe, dass der K2CpuMan Reviewprozess die meisten CPU-Zyklen verwendet. Diese Aktivität zeigt an, dass die CPU ausgelastet ist, da sie Pakete verarbeitet, die an sie gerichtet sind.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.01 2 0 100 500 0 0 0 13:45
GalChassisVp-review 3.00 0.20 10 16 100 500 0 0 0 88:44
S2w-JobEventSchedule 10.00 0.57 10 7 100 500 1 0 0 404:22
Stub-JobEventSchedul 10.00 0.00 10 0 100 500 0 0 0 0:00
StatValueMan Update 1.00 0.09 1 0 100 500 0 0 0 91:33
Pim-review 0.10 0.00 1 0 100 500 0 0 0 4:46
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 14:01
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:20
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:01
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:04
KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:21
KxAclPathMan update 2.00 0.00 10 6 100 500 0 0 0 0:05
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 14 100 500 0 0 0 0:18
K2CpuMan Review 30.00 91.31 30 92 100 500 128 119 84 13039:02
K2AccelPacketMan: Tx 10.00 2.30 20 0 100 500 2 2 2 1345:30
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu identifizieren.
Um die Art des Datenverkehrs zu bestimmen, der die CPU erreicht, geben Sie den Befehl
show platform cpu packet statisticsein. In dieser Befehlsausgabe können Sie sehen, dass der Empfang von Paketen auf das ACLlog-Schlüsselwort zurückzuführen ist:
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
----------------- -------------------- --------- --------- --------- ----------
Control 1198701435 35 35 34 35
Host Learning 874391 0 0 0 0
L3 Fwd High 428 0 0 0 0
L3 Fwd Medium 12745 0 0 0 0
L3 Fwd Low 2420401 0 0 0 0
L2 Fwd High 26855 0 0 0 0
L2 Fwd Medium 116587 0 0 0 0
L2 Fwd Low 317829151 53 41 31 31
L3 Rx High 2371 0 0 0 0
L3 Rx Low 32333361 7 1 2 0
RPF Failure 4127 0 0 0 0
ACL fwd (snooping) 107743299 4 4 4 4
ACL log, unreach 1209056404 1987 2125 2139 2089
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
----------------- -------------------- --------- --------- --------- ----------
ACL log, unreach 193094788 509 362 437 394
Schritt 4: Beheben des Problems
In Schritt 3 haben Sie die Ursache in diesem Szenario ermittelt. Um dieses Problem zu vermeiden, entfernen Sie dasLog-Schlüsselwort aus den ACLs. In Cisco IOS Software, Version 12.1(13)EW1 und höher, sind die Paketraten limitiert, sodass die CPU-Auslastung nicht zu hoch wird. Verwenden Sie die Zugriffslistenzähler, um ACL-Treffer nachzuverfolgen. In der
show access-list acl_idBefehlsausgabe werden die Zähler der Zugriffsliste angezeigt.
Layer-2-Weiterleitungsschleifen
Layer-2-Weiterleitungsschleifen können durch eine schlechte Implementierung des Spanning Tree Protocol (STP) und verschiedene Probleme verursacht werden, die sich auf das STP auswirken können.
Schritt 1: Überprüfen Sie den Cisco IOS-Prozess mit dem show processes cpu Befehl
In diesem Abschnitt werden die Befehle beschrieben, die ein Administrator verwendet, um das Problem der hohen CPU-Auslastung einzugrenzen. Wenn Sie den
show processes cpuBefehl ausgeben, können Sie sehen, dass zwei Hauptprozesse, Cat4k Mgmt LoPriandSpanning Tree, primär die CPU verwenden. Nur anhand dieser Informationen wissen Sie, dass der Spanning Tree-Prozess einen beträchtlichen Teil der CPU-Zyklen beansprucht.
Switch#show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
!--- Output suppressed.
41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
Schritt 2: Suchen Sie mit dem Befehl show platform health nach dem Catalyst 4500-spezifischen Prozess.
Um zu verstehen, welcher plattformspezifische Prozess die CPU beansprucht, geben Sie den
show platform healthBefehl ein. Aus dieser Ausgabe können Sie sehen, dass der K2CpuMan Reviewprozess, ein Job zur Verarbeitung von CPU-gebundenen Paketen, die CPU verbraucht:
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Schritt 3: Überprüfen Sie die CPU-Warteschlange, die Datenverkehr empfängt, um die Art des CPU-gebundenen Datenverkehrs zu ermitteln
Geben Sie den
show platform cpu packet statisticsBefehl ein, um zu überprüfen, welche CPU-Warteschlange das CPU-gebundene Paket empfängt. Die Ausgabe in diesem Abschnitt zeigt, dass die Steuerwarteschlange viele Pakete empfängt. Verwenden Sie die Informationen in Tabelle 1 und die Schlussfolgerung, die Sie in Schritt 1 gezogen haben. Sie können bestimmen, dass die von der CPU verarbeiteten Pakete und der Grund für die hohe CPU-Auslastung die BPDU-Verarbeitung sind.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 202760 196 173 128 28
Control 388623 2121 1740 598 16
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 17918 0 19 24 3
Schritt 4: Identifizieren der Ursache und Beheben des Problems
Im Allgemeinen können Sie diese Schritte ausführen, um eine Fehlerbehebung durchzuführen (je nach Situation sind einige Schritte nicht erforderlich):
-
Identifizieren Sie die Schleife.
-
Entdecken Sie den Umfang der Schleife.
-
Brechen Sie die Schleife.
-
Beheben Sie die Ursache für die Schleife.
-
Wiederherstellen der Redundanz
Die einzelnen Schritte werden detailliert unter Troubleshooting Forwarding Loops - Troubleshooting STP on Catalyst Switches Running Cisco IOS System Software erläutert.
Schritt 5: Implementierung erweiterter STP-Funktionen
-
BDPU Guard (BDPU-Schutz): Schützt STP vor nicht autorisierten Netzwerkgeräten, die mit portfast-fähigen Ports verbunden sind. Weitere Informationen finden Sie unter Spanning Tree PortFast BPDU Guard Enhancement.
-
Loop Guard: Erhöht die Stabilität von Layer-2-Netzwerken. Weitere Informationen finden Sie unter Spanning-Tree Protocol Enhancements using Loop Guard and BPDU Skew Detection Features (Spanning-Tree-Protokollverbesserungen mit Schleifenschutz und BPDU-Skew-Erkennung).
-
Root Guard (Root-Schutz): Erzwingt die Root-Bridge-Platzierung im Netzwerk. Weitere Informationen finden Sie unter Spanning Tree Protocol Root Guard Enhancement.
-
UDLD: Erkennt unidirektionale Verbindungen und verhindert Weiterleitungsschleifen. Weitere Informationen finden Sie unter Unidirectional Link Detection Protocol Feature (Unidirektionale Verbindungserkennungsprotokollfunktion verstehen und konfigurieren).
Andere Ursachen für eine hohe CPU-Auslastung
Dies sind einige andere bekannte Ursachen für eine hohe CPU-Auslastung:
-
-
Spitzen bei der CPU-Auslastung aufgrund der FIB-Konsistenzprüfung
-
-
Hohe CPU-Auslastung bei der Überprüfung des RikosPortMan-Ports
-
Hohe CPU-Auslastung bei Verbindung mit einem IP-Telefon unter Verwendung von Trunk-Ports
-
-
Spike bei der Programmierung großer ACLs
Die CPU-Auslastung steigt, wenn eine große ACL angewendet oder von einer Schnittstelle entfernt wird.
Übermäßige Verbindungslücken
Der Catalyst 4500 weist eine hohe CPU-Auslastung auf, wenn eines oder mehrere der angeschlossenen Links zu stark zu lappen beginnen. Diese Situation tritt in Cisco IOS Software-Versionen vor Version 12.2(20)EWA der Cisco IOS Software auf.
Schritt 1: Suchen Sie mit dem Befehl show processes cpu nach dem Cisco IOS-Prozess.
Führen Sie den Befehl cpucommand aus, um zu überprüfen, welcher Cisco IOS-Prozess die CPU beansprucht. Beachten Sie in dieser Befehlsausgabe, dass der oberste Prozess der Cat4k Mgmt LoPri ist:
Switch#show processes cpu
CPU utilization for five seconds: 96%/0%; one minute: 76%; five minutes: 68%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 4 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9840 463370 21 0.00% 0.00% 0.00% 0 Load Meter
3 0 2 0 0.00% 0.00% 0.00% 0 SNMP Timers
!--- Output suppressed.
27 232385144 530644966 437 13.98% 12.65% 12.16% 0 Cat4k Mgmt HiPri
28 564756724 156627753 3605 64.74% 60.71% 54.75% 0 Cat4k Mgmt LoPri
29 9716 1806301 5 0.00% 0.00% 0.00% 0 Galios Reschedul
Schritt 2: Suchen Sie mit dem Befehl show platform health nach dem Catalyst 4500-spezifischen Prozess.
Die Ausgabe des Befehls show platform health zeigt an, dass der KxAclPathMan-Erstellungsprozess die CPU beansprucht. Dieser Prozess dient der internen Pfaderstellung.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.03 2 0 100 500 0 0 0 9:49
GalChassisVp-review 3.00 1.11 10 62 100 500 0 0 0 37:39
S2w-JobEventSchedule 10.00 2.85 10 8 100 500 2 2 2 90:00
Stub-JobEventSchedul 10.00 5.27 10 9 100 500 4 4 4 186:2
Pim-review 0.10 0.00 1 0 100 500 0 0 0 2:51
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 8:06
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:14
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:00
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:00
KxAclPathMan create/ 1.00 69.11 10 5 100 500 42 53 22 715:0
KxAclPathMan update 2.00 0.76 10 6 100 500 0 0 0 86:00
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 227 100 500 0 0 0 0:00
K2CpuMan Review 30.00 8.05 30 57 100 500 6 5 5 215:0
K2AccelPacketMan: Tx 10.00 6.86 20 0 100 500 5 5 4 78:42
Schritt 3: Identifizieren der Ursache
Aktivieren Sie die Protokollierung für Verbindungs-Up-/Down-Meldungen. Diese Protokollierung ist nicht standardmäßig aktiviert. Die Aktivierung unterstützt Sie dabei, die Links einzugrenzen, die auf den Angreifer zutreffen. Geben Sie unter allen Schnittstellen den Befehl logging event link-status ein. Sie können den Schnittstellenbereichsbefehl verwenden, um eine Reihe von Schnittstellen bequem zu aktivieren, wie dieses Beispiel zeigt:
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface range gigabitethernet 5/1 - 48
Switch(config-if-range)#logging event link-status
Switch(config--if-range)#end
Switch#show logging
!--- Output suppressed.
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
Fahren Sie die Schnittstelle herunter, nachdem Sie die fehlerhafte oder flapping-Schnittstelle identifiziert haben, um das Problem mit der hohen CPU-Auslastung zu beheben. Die Cisco IOS Software, Version 12.2(20)EWA und höher, hat das Verhalten des Catalyst 4500 in Bezug auf diese Flapping-Link-Bedingung verbessert. Daher sind die Auswirkungen auf die CPU nicht so groß wie vor der Verbesserung. Denken Sie daran, dass dieser Prozess ein Hintergrundprozess ist. Eine hohe CPU-Auslastung aufgrund dieses Problems hat keine nachteiligen Auswirkungen auf Catalyst 4500-Switches.
Spitzen bei der CPU-Auslastung aufgrund der FIB-Konsistenzprüfung
Catalyst 4500 kann bei einer FIB-Tabelle Konsistenzprüfung kurzfristige Spitzen in der CPU-Auslastung anzeigen. Die FIB-Tabelle ist die L3-Weiterleitungstabelle, die vom CEF-Prozess erstellt wird. Die Konsistenzprüfung gewährleistet die Konsistenz zwischen der Cisco IOS Software-FIB-Tabelle und den Hardwareeinträgen. Diese Konsistenz gewährleistet, dass Pakete nicht fehlgeleitet werden. Die Prüfung erfolgt alle 2 Sekunden und wird als Hintergrundprozess mit niedriger Priorität ausgeführt. Dieser Prozess ist ein normales Verhalten und greift nicht in andere Prozesse oder Pakete mit hoher Priorität ein.
Die Ausgabe des Befehls show platform health zeigt, dass K2Fib Consistency den Großteil der CPU beansprucht.
Hinweis: Die durchschnittliche CPU-Auslastung für diesen Prozess ist über eine Minute oder eine Stunde unerheblich. Dies bestätigt, dass es sich um eine kurze regelmäßige Überprüfung handelt. Dieser Hintergrundprozess verwendet nur die CPU-Zyklen im Leerlauf.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
!--- Output suppressed.
K2Fib cam usage revi 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib IrmFib Review 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib Vrf Default Ro 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib AdjRepop Revie 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib Vrf Unpunt Rev 2.00 0.01 15 0 100 500 0 0 0 0:23
K2Fib Consistency Ch 1.00 60.40 5 2 100 500 0 0 0 100:23
K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21
K2FibAdjMan Host Mov 2.00 0.00 10 4 100 500 0 0 0 0:00
K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00
K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04
Hohe CPU-Auslastung im K2FibAdjMan Host-Verschiebungsprozess
Der Catalyst 4500 kann eine hohe CPU-Auslastung im K2FibAdjMan Host-Bewegungsprozess anzeigen. Diese hohe Auslastung wird in der Ausgabe des Befehls show platform health angezeigt. Viele MAC-Adressen laufen häufig ab oder werden an neuen Ports erfasst, was zu einer hohen CPU-Auslastung führt. Der Standardwert für "mac-address-table aging-time" ist 5 Minuten oder 300 Sekunden. Die Problemumgehung besteht darin, die Veraltungszeit der MAC-Adressen zu erhöhen. Alternativ dazu können Sie das Netzwerk so konfigurieren, dass die große Anzahl an MAC-Adressen-Verschiebungen vermieden wird. Cisco IOS Software, Version 12.2(18)EW und höher, haben dieses Prozessverhalten verbessert, um den CPU-Verbrauch zu reduzieren. Siehe Cisco bug IDCSCed15021.
Hinweis: Nur registrierte Cisco BenutzerInnen können auf interne Cisco Tools und Informationen zugreifen.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14
!--- Output suppressed.
K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21
K2FibAdjMan Host Mov 2.00 18.68 10 4 100 500 25 29 28 2134:39
K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00
K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04
K2FibMulticast Entry 2.00 0.00 10 7 100 500 0 0 0 0:00
Sie können die maximale Alterungszeit einer MAC-Adresse im globalen Konfigurationsmodus ändern. Die Befehlssyntax ismac-address-table aging-time seconds für einen Router und mac-address-table aging-time seconds [vlan vlan-id] für einen Catalyst Switch. Weitere Informationen finden Sie im Cisco IOS Switching Services Command Reference Guide.
Hohe CPU-Auslastung im Prüfprozess des RikosPortMan-Ports
Der Catalyst 4500 kann die hohe CPU-Auslastung im Prüfprozess für den RikosPortMan-Port in der Ausgabe des Befehls show platform health in den Cisco IOS-Softwareversionen 12.2(25)EWA und 12.2(25)EWA1 anzeigen. Der Cisco Bug IDCSCeh08768verursacht die hohe Auslastung, die mit Cisco IOS Software Release 12.2(25)EWA2 behoben wird. Dieser Prozess ist ein Hintergrundprozess und hat keine Auswirkungen auf die Stabilität der Catalyst 4500-Switches.
Hinweis: Nur registrierte Cisco BenutzerInnen können auf interne Cisco Tools und Informationen zugreifen.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14
!--- Output suppressed.
K2 Packet Memory Dia 2.00 0.00 15 8 100 500 0 1 1 45:46
K2 L2 Aging Table Re 2.00 0.12 20 3 100 500 0 0 0 7:22
RkiosPortMan Port Re 2.00 87.92 12 7 100 500 99 99 89 1052:36
Rkios Module State R 4.00 0.02 40 1 100 500 0 0 0 1:28
Rkios Online Diag Re 4.00 0.02 40 0 100 500 0 0 0 1:15
Hohe CPU-Auslastung bei Verbindung mit einem IP-Telefon unter Verwendung von Trunk-Ports
Wenn ein Port sowohl für die Sprach-VLAN-Option als auch für die Zugriffs-VLAN-Option konfiguriert ist, fungiert der Port als Multi-VLAN-Zugriffsport. Der Vorteil besteht darin, dass nur die VLANs, die für die Sprach- und Zugangs-VLAN-Optionen konfiguriert sind, gebündelt werden.
Die Anzahl der mit dem Telefon verbundenen VLANs erhöht sich um ein Vielfaches. Der Switch verwaltet die STP-Instanzen. Durch die Verwaltung der zunehmenden Anzahl von STP-Instanzen wird auch die CPU-Auslastung des STP erhöht.
Das Trunking aller VLANs verursacht außerdem unnötigen Broadcast-, Multicast- und unbekannten Unicast-Datenverkehr, der auf die Telefonverbindung gelangt.
Switch#show processes cpu
CPU utilization for five seconds: 69%/0%; one minute: 72%; five minutes: 73%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 165 24 0.00% 0.00% 0.00% 0 Chunk Manager
2 29012 739091 39 0.00% 0.00% 0.00% 0 Load Meter
3 67080 13762 4874 0.00% 0.00% 0.00% 0 SpanTree Helper
4 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events
5 0 2 0 0.00% 0.00% 0.00% 0 IpSecMibTopN
6 4980144 570766 8725 0.00% 0.09% 0.11% 0 Check heaps
26 539173952 530982442 1015 13.09% 13.05% 13.20% 0 Cat4k Mgmt HiPri
27 716335120 180543127 3967 17.61% 18.19% 18.41% 0 Cat4k Mgmt LoPri
33 1073728 61623 17424 0.00% 0.03% 0.00% 0 Per-minute Jobs
34 1366717824 231584970 5901 38.99% 38.90% 38.92% 0 Spanning Tree
35 2218424 18349158 120 0.00% 0.03% 0.02% 0 DTP Protocol
36 5160 369525 13 0.00% 0.00% 0.00% 0 Ethchnl
37 271016 2308022 117 0.00% 0.00% 0.00% 0 VLAN Manager
38 958084 3965585 241 0.00% 0.01% 0.01% 0 UDLD
39 1436 51011 28 0.00% 0.00% 0.00% 0 DHCP Snooping
40 780 61658 12 0.00% 0.00% 0.00% 0 Port-Security
41 1355308 12210934 110 0.00% 0.01% 0.00% 0 IP Input
Hohe CPU-Auslastung mit RSPAN und Layer-3-Steuerungspaketen
Layer-3-Steuerungspakete, die mit RSPAN erfasst werden, sind für die CPU bestimmt und nicht nur für die RSPAN-Zielschnittstelle, was eine hohe CPU-Auslastung verursacht. Die L3-Steuerungspakete werden von statischen CAM-Einträgen erfasst, wobei die Weiterleitung an die CPU erfolgt. Die statischen CAM-Einträge gelten global für alle VLANs. Um unnötiges CPU-Flooding zu vermeiden, verwenden Sie die Per-VLAN Control Traffic Intercept-Funktion, die in den Cisco IOS Software-Versionen 12.2(37)SG und höher verfügbar ist.
Switch(config)#access-list hardware capture mode vlan
Oben im TCAM der Eingabefunktion werden statische ACLs installiert, um Steuerungspakete zu erfassen, die an bekannte IP-Multicast-Adressen im 224.0.0.*-Bereich gerichtet sind. Statische Zugriffskontrolllisten werden beim Start installiert und vor jeder benutzerdefinierten Zugriffskontrollliste angezeigt. Statische ACLs werden immer zuerst aufgerufen und unterbrechen den Kontrollverkehr zur CPU in allen VLANs.
Per-VLAN-Steuerung des Datenverkehrs-Intercept bietet selektiven VLAN-Pfad-Managed-Modus zur Erfassung des Datenverkehrs. Die entsprechenden statischen CAM-Einträge im Eingabefeld TCAM werden im neuen Modus ungültig. Steuerungspakete werden von funktionsspezifischen ACLs erfasst, die an VLANs angeschlossen sind, in denen Snooping- oder Routing-Funktionen aktiviert sind. Es ist keine funktionsspezifische ACL mit dem RSPAN-VLAN verbunden. Aus diesem Grund werden alle vom RSPAN-VLAN empfangenen Layer-3-Steuerungspakete nicht an die CPU weitergeleitet.
Tools zur Fehlerbehebung zur Analyse des an die CPU gerichteten Datenverkehrs
Wie dieses Dokument gezeigt hat, ist Datenverkehr, der an die CPU gerichtet ist, eine der Hauptursachen für eine hohe CPU-Auslastung auf dem Catalyst 4500. Der für die CPU bestimmte Datenverkehr kann entweder aufgrund der Konfiguration beabsichtigt oder aufgrund einer Fehlkonfiguration oder eines Denial-of-Service-Angriffs unbeabsichtigt sein. Die CPU verfügt über einen integrierten QoS-Mechanismus, um nachteilige Auswirkungen auf das Netzwerk aufgrund dieses Datenverkehrs zu verhindern. Identifizieren Sie jedoch die Ursache von CPU-gebundenem Datenverkehr, und eliminieren Sie den Datenverkehr, falls er unerwünscht ist.
Tool 1: Überwachen des CPU-Datenverkehrs mit SPAN - Cisco IOS Software, Version 12.1(19)EW und höher
Der Catalyst 4500 ermöglicht die Überwachung des CPU-gebundenen Datenverkehrs (ein- oder ausgehend) mithilfe der Standard-SPAN-Funktion. Die Zielschnittstelle ist mit einem Paketmonitor oder einem Administrator-Laptop verbunden, auf dem die Paket-Sniffer-Software ausgeführt wird. Dieses Tool ermöglicht eine schnelle und genaue Analyse des von der CPU verarbeiteten Datenverkehrs. Das Tool bietet die Möglichkeit, einzelne Warteschlangen zu überwachen, die an die CPU-Paket-Engine gebunden sind.
Hinweis: Die Switching-Engine verfügt über 32 Warteschlangen für den CPU-Datenverkehr und die CPU-Paket-Engine über 16 Warteschlangen.
Switch(config)#monitor session 1 source cpu ?
both Monitor received and transmitted traffic
queue SPAN source CPU queue
rx Monitor received traffic only
tx Monitor transmitted traffic only
<cr>
Switch(config)#monitor session 1 source cpu queue ?
<1-32> SPAN source CPU queue numbers
acl Input and output ACL [13-20]
adj-same-if Packets routed to the incoming interface [7]
all All queues [1-32]
bridged L2/bridged packets [29-32]
control-packet Layer 2 Control Packets [5]
mtu-exceeded Output interface MTU exceeded [9]
nfl Packets sent to CPU by netflow (unused) [8]
routed L3/routed packets [21-28]
rpf-failure Multicast RPF Failures [6]
span SPAN to CPU (unused) [11]
unknown-sa Packets with missing source address [10]
Switch(config)#monitor session 1 source cpu queue all rx
Switch(config)#monitor session 1 destination interface gigabitethernet 1/3
Switch(config)#end
4w6d: %SYS-5-CONFIG_I: Configured from console by console
Switch#show monitor session 1
Session 1
---------
Type : Local Session
Source Ports :
RX Only : CPU
Destination Ports : Gi1/3
Encapsulation : Native
Ingress : Disabled
Learning : Disabled
Wenn Sie einen PC anschließen, auf dem ein Sniffer-Programm ausgeführt wird, können Sie den Datenverkehr schnell analysieren. In der Ausgabe, die in diesem Abschnitt im Fenster angezeigt wird, können Sie sehen, dass die Ursache für die hohe CPU-Auslastung eine übermäßige Anzahl von STP-BPDUs ist.
Hinweis: STP-BPDUs im CPU-Sniffer sind normal. Wenn Sie jedoch mehr sehen, als Sie erwarten, haben Sie die empfohlenen Grenzwerte für die Supervisor Engine überschritten. Weitere Informationen finden Sie im Abschnitt Eine hohe Anzahl von Spanning-Tree-Port-Instanzen dieses Dokuments.
Tool 2: Integrierter CPU Sniffer - Cisco IOS Software, Version 12.2(20)EW und höher
Der Catalyst 4500 verfügt über einen integrierten CPU-Sniffer und einen Decoder, mit dem der auf die CPU treffende Datenverkehr schnell identifiziert werden kann. Sie können diese Funktion mit dem
debug Befehl aktivieren, wie das Beispiel in diesem Abschnitt zeigt. Diese Funktion implementiert einen Ringpuffer, der 1024 Pakete gleichzeitig speichert. Wenn neue Pakete eintreffen, überschreiben sie die älteren Pakete. Diese Funktion ist sicher zu verwenden, wenn Sie Probleme mit der CPU-Auslastung beheben.
Switch#debug platform packet all receive buffer
platform packet debugging is on
Switch#show platform cpu packet buffered
Total Received Packets Buffered: 36
-------------------------------------
Index 0:
7 days 23:6:32:37214 - RxVlan: 99, RxPort: Gi4/48
Priority: Crucial, Tag: Dot1Q Tag, Event: Control Packet, Flags: 0x40, Size: 68
Eth: Src 00-0F-F7-AC-EE-4F Dst 01-00-0C-CC-CC-CD Type/Len 0x0032
Remaining data:
0: 0xAA 0xAA 0x3 0x0 0x0 0xC 0x1 0xB 0x0 0x0
10: 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16 0x63 0x28
20: 0x62 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16
30: 0x63 0x28 0x62 0x80 0xF0 0x0 0x0 0x14 0x0 0x2
40: 0x0 0xF 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x63
Index 1:
7 days 23:6:33:180863 - RxVlan: 1, RxPort: Gi4/48
Priority: Crucial, Tag: Dot1Q Tag, Event: Control Packet, Flags: 0x40, Size: 68
Eth: Src 00-0F-F7-AC-EE-4F Dst 01-00-0C-CC-CC-CD Type/Len 0x0032
Remaining data:
0: 0xAA 0xAA 0x3 0x0 0x0 0xC 0x1 0xB 0x0 0x0
10: 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16 0x63 0x28
20: 0x62 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16
30: 0x63 0x28 0x62 0x80 0xF0 0x0 0x0 0x14 0x0 0x2
40: 0x0 0xF 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x63
Hinweis: Die CPU-Auslastung bei der Ausgabe eines debug Befehls beträgt immer fast 100 %. Es ist normal, dass die CPU-Auslastung hoch ist, wenn Sie einen debug Befehl ausgeben.
Tool 3: Identifizieren der Schnittstelle, die Datenverkehr an die CPU sendet - Cisco IOS Software, Version 12.2(20)EW und höher
Catalyst 4500 bietet ein weiteres nützliches Tool zum Identifizieren der wichtigsten Schnittstellen, die Datenverkehr/Pakete für die CPU-Verarbeitung senden. Mit diesem Tool können Sie schnell ein Laufgerät identifizieren, das eine hohe Anzahl an Broadcast- oder anderen Denial-of-Service-Angriffen an die CPU sendet. Diese Funktion ist auch sicher zu verwenden, wenn Sie Probleme mit der CPU-Auslastung beheben.
Switch#debug platform packet all count
platform packet debugging is on
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Transmitted from CPU per Output Interface
Interface Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Gi4/47 1150 1 5 10 0
Gi4/48 50 1 0 0 0
Packets Received at CPU per Input Interface
Interface Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Gi4/47 23130 5 10 50 20
Gi4/48 50 1 0 0 0
Hinweis: Die CPU-Auslastung bei Ausgabe eines Debug-Befehls beträgt immer fast 100 %. Es ist normal, eine hohe CPU-Auslastung zu haben, wenn Sie einen Debug-Befehl ausgeben.
Zusammenfassung
Die Catalyst Switches der Serie 4500 verarbeiten eine hohe Rate von IPv4-Paketweiterleitungen in der Hardware. Einige der Funktionen oder Ausnahmen können die Weiterleitung einiger Pakete über den CPU-Prozesspfad verursachen. Catalyst 4500 verwendet einen ausgeklügelten QoS-Mechanismus zur Verarbeitung von CPU-gebundenen Paketen. Dieser Mechanismus gewährleistet die Zuverlässigkeit und Stabilität der Switches und maximiert gleichzeitig die CPU für die Software-Weiterleitung von Paketen. Die Cisco IOS Software, Version 12.2(25)EWA2 und höher, bietet zusätzliche Verbesserungen für die Paket-/Prozessabwicklung und die Abrechnung. Der Catalyst 4500 verfügt außerdem über ausreichende Befehle und leistungsstarke Tools, um die Ursache für Szenarien mit hoher CPU-Auslastung zu identifizieren. In den meisten Fällen ist die hohe CPU-Auslastung auf dem Catalyst 4500 jedoch weder Grund zur Instabilität des Netzwerks noch Grund zur Besorgnis.
Zugehörige Informationen
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
2.0 |
01-Aug-2023 |
Rezertifizierung |
1.0 |
13-Jul-2005 |
Erstveröffentlichung |