Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Symptome einer hohen CPU-Auslastung

Fehlerbehebung bei hoher CPU-Auslastung

Bestimmen der Ursachen und Beheben des Problems

Hohe CPU-Auslastung aufgrund von Unterbrechungen

Hohe CPU-Auslastung bei Aktivierung von NetFlow NDE auf Cisco Routern der Serie 7600

Hohe CPU-Auslastung durch Prozesse

PCI- und FAST-Speicherpools zeigen eine sehr hohe Auslastung

%SNMP-4-HIGHCPU: Der Prozess überschreitet den [dec]ms-Schwellenwert ([dec]ms IOS-Quantum) für [chars] von [chars] - Ergebnis [chars].

Hohe CPU-Auslastung durch Softwareverschlüsselung

Hohe CPU-Auslastung aufgrund von Fragmentierung

Befehle zum Abrufen weiterer Informationen

show verarbeitet cpu-Befehl

Der Befehl show interfaces

show interfaces switching-Befehl

show interfaces stat-Befehl

Der Befehl show ip nat translation

Der Befehl show align

Der Befehl show version

Der Befehl show log

EEM-Skripte für die automatische Datenerfassung unter hohen CPU-Bedingungen

EEM-Beispielskript mit SNMP-OID

EEM-Beispielskript mit den CPU-Schwellenwertbenachrichtigungsmeldungen

EEM-Beispielskript zum Starten/Anhalten des CPU-Profils

UNIX-Shellskript für die periodische Datenerfassung

Zugehörige Informationen

Einleitung

Dieses Dokument beschreibt häufige Symptome und Ursachen einer hohen CPU-Auslastung auf Cisco Routern und bietet Richtlinien und Lösungen für häufige Probleme.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- Cisco Router

- Cisco IOS® Software-Switching-Pfade

Informationen zu den Pfaden für das Switching der Cisco IOS Software finden Sie unter Grundlagen der Leistungsoptimierung.

Verwendete Komponenten

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

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 verstehen.

Symptome einer hohen CPU-Auslastung

Diese Liste beschreibt häufige Symptome einer hohen CPU-Auslastung. Wenn Sie eines dieser Symptome bemerken, beheben Sie das Problem mit den in diesem Dokument angegebenen Schritten.

- Hohe Prozentsätze im  show processes cpu  Befehlsausgabe.

Wenn Sie die Ausgabe eines Befehls show processes cpu von Ihrem Cisco Gerät erhalten haben, können Sie mit Cisco CLI Analyzer potenzielle Probleme und Korrekturen anzeigen.

Hinweis: Um Cisco CLI Analyzer verwenden zu können, müssen Sie als Cisco Benutzer registriert, angemeldet und JavaScript aktiviert sein.

- Langsame Leistung

- Dienste auf dem Router reagieren nicht, z. B.:

- Langsame Reaktion in Telnet oder Telnet kann nicht zum Router übertragen werden

- Langsame Reaktion auf der Konsole

- Langsame oder keine Antwort auf Ping

- Router sendet keine Routing-Updates an andere Router

- Hohe Pufferausfälle

Fehlerbehebung bei hoher CPU-Auslastung

Sobald Sie eines der Symptome von den Symptomen der hohen CPU-Auslastung bemerken:

- Überprüfen Sie auf ein mögliches Sicherheitsproblem. Eine hohe CPU-Auslastung wird häufig durch ein Sicherheitsproblem verursacht, z. B. durch einen Wurm oder einen Virus, der in Ihrem Netzwerk ausgeführt wird. Dies ist insbesondere dann der Fall, wenn in letzter Zeit keine Änderungen am Netzwerk vorgenommen wurden. In der Regel kann eine Konfigurationsänderung die Auswirkungen dieses Problems mindern, wenn Sie Ihren Zugriffslisten zusätzliche Leitungen hinzufügen. Cisco Product Security Advisories and Notices enthalten Informationen zur Erkennung der wahrscheinlichsten Ursachen und der häufigsten Problemumgehung.

Weitere Informationen finden Sie unter:

- 100 Fragen und Antworten zu Bedrohungen aus dem Internet

- Cisco Produktsicherheitsempfehlungen und -hinweise

- Cisco Bedrohungsschutz

- Achten Sie darauf,  debug  -Befehle im Router ausgeschaltet werden, undebug all Oder no debug all  -Befehlen.

- Können Sie  show -Befehlen auf dem Router? Wenn ja, fangen Sie sofort an, weitere Informationen zu sammeln. Verwenden Sie dabei folgende Punkte:  show -Befehlen.

- Ist der Router unzugänglich? Können Sie dieses Problem reproduzieren? Falls ja, fahren Sie den Router aus und konfigurieren Sie das  scheduler interval 500  aus. Auf diese Weise wird die Ausführung von Prozessen mit niedriger Priorität alle 500 Millisekunden geplant. So haben Sie Zeit, einige Befehle auszuführen, selbst wenn die CPU-Auslastung bei 100 Prozent liegt. Verwenden Sie für Cisco Router der Serien 7200 und 7500 die  scheduler allocate 3000 1000  aus.

- Zeigt der Router Symptome einer hohen CPU-Auslastung in kurzen und unvorhersehbaren Intervallen? Falls ja, erfassen Sie in regelmäßigen Abständen die Ausgabe des  show processes cpu  -Befehl, der anzeigt, ob die hohe CPU-Auslastung durch Interrupts oder einen bestimmten Prozess verursacht wird. Verwenden Sie dieses UNIX-Skript, und ändern Sie das Skript entsprechend der ersten Ergebnisse, um die für die weitere Untersuchung des Problems erforderlichen Daten zu erfassen.

Bestimmen der Ursachen und Beheben des Problems

Verwenden Sie den Befehl show processes cpu, um zu überprüfen, ob die CPU-Auslastung aufgrund von Unterbrechungen oder Prozessen hoch ist.

Hohe CPU-Auslastung aufgrund von Unterbrechungen

Weitere Informationen finden Sie unter Troubleshooting High CPU Utilization Caused by Interrupts (Fehlerbehebung bei hoher CPU-Auslastung durch Interrupts). Wenn der CPU-Pegel aufgrund von Unterbrechungen steigt, die wahrscheinlich auf CEF-Switching-Pakete zurückzuführen sind, hat der CPU-Pegel keinen Einfluss auf die Router-Leistung.

Hohe CPU-Auslastung bei Aktivierung von NetFlow NDE auf Cisco Routern der Serie 7600

Wenn NetFlow für Version 7 konfiguriert ist, wird der Datenfluss vom Routing-Prozessor durchgeführt, was zu einer hohen CPU-Auslastung führen kann.

Um die hohe CPU-Auslastung aufgrund von NetFlow Version 7 zu beheben, konfigurieren Sie mls node sender Version 5, da der NetFlow-Export vom SP ausgeführt wird. Dies ist der Standard für Version 5 oder Version 9.

Hohe CPU-Auslastung durch Prozesse

Überprüfen Sie, welcher Prozess die CPU belastet. Ungewöhnliche Aktivitäten im Zusammenhang mit einem Prozess führen zu einer Fehlermeldung im Protokoll. Daher wird die Ausgabe des show logging exec  muss zuerst auf Fehler überprüft werden, die mit dem Prozess zusammenhängen, der viele CPU-Zyklen beansprucht.

Sie können Debugbefehle verwenden, um eine hohe CPU-Auslastung in diesen Prozessen zu beheben. Debug-Befehle müssen mit äußerster Vorsicht ausgeführt werden, da sie die CPU-Auslastung noch weiter erhöhen können. Diese Voraussetzungen müssen erfüllt sein, damit Debugbefehle sicher verwendet werden können:

- Alle Protokollierungsziele mit Ausnahme der Pufferprotokollierung müssen entweder deaktiviert oder ihr Protokollierungsschweregrad muss von 7 (Debugging) auf maximal 6 (informativ) gesenkt werden, wobei die entsprechenden  logging destination [ severity-level ]  configuration  aus. Um zu sehen, welche Protokollierungsziele und die entsprechenden Ebenen aktiviert sind, lesen Sie die Kopfzeilen der show logging exec aus.

- Die Größe des Protokollierungspuffers muss erhöht werden, um ausreichende Informationen zu erfassen. Weitere Informationen finden Sie in der Beschreibung des  logging buffer global configuration  aus.

- Um Debugs besser lesen und verstehen zu können, müssen die Datums- und Millisekundenzeitstempel aktiviert sein. Weitere Informationen finden Sie in der Beschreibung des service timestamps global configuration  aus.

Eine Beispiel-Debugsitzung für IP-Pakete finden Sie unter Troubleshooting High CPU Utilization (Fehlerbehebung bei hoher CPU-Auslastung) im IP-Eingabeprozess.

Informationen zur Fehlerbehebung bei hoher CPU-Auslastung in bestimmten Prozessen finden Sie unter:

- ARP Input (ARP-Eingang): ARP Input (ARP-Eingang) im Dokument Troubleshooting High CPU Utilization due to Processes (Fehlerbehebung bei hoher CPU-Auslastung aufgrund von Prozessen).

- BGP Router - Hohe CPU aufgrund des BGP Router Process-Abschnitts des Dokuments Troubleshooting High CPU due by the BGP Scanner or BGP Router Process.

- BGP Scanner: Hohe CPU aufgrund des BGP Scanner-Abschnitts des Dokuments Troubleshooting High CPU (Fehlerbehebung bei hoher CPU), verursacht durch den BGP Scanner- oder BGP Router-Prozess.

- EXEC: Hohe CPU-Auslastung im EXEC- und virtuellen EXEC-Prozess.

- HyBridge Input (HyBridge-Eingang): Fehlerbehebung bei hoher CPU-Auslastung durch den HyBridge-Eingabeprozess bei Routern mit ATM-Schnittstellen

- IP Input (IP-Eingabe): Fehlerbehebung bei hoher CPU-Auslastung aufgrund des IP-Eingabeprozesses.

- IP Simple Network Management Protocol (SNMP) - IP Simple Network Management Protocol (SNMP) verursacht eine hohe CPU-Auslastung.

- LC ADJ Updater (LC-ADJ-Updater): Was verursacht eine hohe CPU-Auslastung beim LC Adjacency Updater-Prozess auf einem Cisco Internet Router der Serie 12000?

- TCP Timer - TCP Timer Abschnitt im Dokument Fehlerbehebung bei hoher CPU-Auslastung aufgrund von Prozessen.

- TTY Background (TTY-Hintergrund): Abschnitt TTY Background (TTY-Hintergrund) des Dokuments Troubleshooting High CPU Utilization due to Processes (Fehlerbehebung bei hoher CPU-Auslastung durch Prozesse).

- Virtual EXEC (Virtueller EXEC) - Siehe den Link für EXEC. Hohe CPU-Auslastung bei Prozessen von Führungskräften und virtuellen Führungskräften

- Vtemplate Background: Virtual Template Background (Hintergrund virtueller Vorlagen) im Dokument Troubleshooting High CPU Utilization due to the Processes (Fehlerbehebung bei hoher CPU-Auslastung aufgrund von Prozessen).

- SSH-Prozess - Kann hoch angesetzt werden, wenn eine show tech oder ein Debugging ist aktiviert.

- Andere Prozesse - Abschnitt "Andere Prozesse" des Dokuments "Fehlerbehebung bei hoher CPU-Auslastung aufgrund der Prozesse".

PCI- und FAST-Speicherpools zeigen eine sehr hohe Auslastung

Bei PCI- und Fast-Memory-Pools ist ein niedriger freier Arbeitsspeicher normal. Der PCI-Speicher wird für den Speicherzugriff auf den GT64260-Controller auf dem PRP-Mainboard für die angeschlossenen PCI-Busse verwendet. Dieser Speicher wird für die interne Kommunikation zwischen dem Systemcontroller und anderen Teilen verwendet, sodass er ständig hoch zu sein scheint.

Wenn mehr Speicher benötigt wird, geht dieser auf den Prozessorpool zurück. Der schnelle Speicher ist eine kleine Speichermenge, die für die Verwendung durch die IDB-Datenstrukturen (Interface Descriptor Block) der Hardware reserviert wurde. Dieser Speicher ist auch während des gesamten Bootvorgangs vollständig reserviert, sodass er immer so hoch angezeigt wird, da der Speicher vollständig genutzt wird. Aus diesem Grund ist es normal, mit dem Fast-Memory-Pool einen geringen freien Speicher zu sehen.

%SNMP-4-HIGHCPU: Der Prozess überschreitet den [dec]ms-Schwellenwert ([dec]ms IOS-Quantum) für [chars] von [chars] - Ergebnis [chars].

Die CPU-Hog-Meldung sieht wie folgt aus:

SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms Cisco IOS quantum)

for GET of rmon.19.16.0--result rmon.19.16.0

In 12.4(13) wurde Cisco IOS eine neue Syslog-Meldung (HIGHCPU) hinzugefügt. Hält ein Prozess die CPU länger als 200 ms an, meldet er eine HIGHCPU-Meldung. Die HIGHCPU-Nachricht hat keine Auswirkung auf den Router. Sie erfahren nur, welcher Prozess die hohe CPU verursacht hat. Die HIGHCPU-Nachricht ähnelt der CPUHOG-Nachricht, aber die HIGHCPU-Nachricht hat einen viel niedrigeren Toleranzschwellenwert, bei 1/10 der Zeit im Vergleich zu einer CPUHOG-Nachricht (in Millisekunden). Bei Versionen vor 12.4(13) auf dem 2600 wurden die Prozesse über einen längeren Zeitraum ausgeführt, es wurden jedoch keine Meldungen generiert, da die Cisco IOS-Versionen diese Erweiterung nicht enthielten.

Die SNMP PDU-Verarbeitung (MIB-Objektabfragen) soll in einem einzigen CPU-Zeitquantum durchgeführt werden, um sicherzustellen, dass jedes Objekt in der PDU gleichzeitig abgerufen wird. Diese Anforderung wird durch den SNMP-Protokollstandard festgelegt. Manche Objekte sind Aggregate vieler Daten im System. Obwohl es sich also um einzelne Objekte handelt, ist aufgrund der Art und Weise, wie sie instrumentiert werden, eine Menge Verarbeitung erforderlich. Wenn der Kunde die CPU nicht gemäß den MIB-Instrumentierungsregeln zurückgibt, besteht die Möglichkeit, dass diese Fehlermeldung angezeigt wird. Außerdem, wenn Sie mehrere verschiedene Objekte in der gleichen Objektgruppe / Tabelle abfragen und die Fehlermeldung erhalten, ist nicht ungewöhnlich, weil aus diesem Grund.

Diese Nachricht wird verwendet, um Objekte zu identifizieren, die mehr CPU-Zeit als erwartet verbrauchen (aber immer noch nicht CPUHOG). Einige NMS-/Instrumentierungstools verhalten sich beim Polling nicht gut. Dieses Problem ist in Cisco Bug-ID CSCsl18139 dokumentiert.

Hinweis: Nur registrierte Cisco Benutzer haben Zugriff auf interne Tools und Fehlerinformationen.

Hohe CPU-Auslastung durch Softwareverschlüsselung

Wenn auf dem Gerät kein Hardware-Verschlüsselungsmodul installiert ist, muss der gesamte verschlüsselte Datenverkehr über das Gerät von der Software verschlüsselt werden. Dies ist sehr CPU-intensiv. Es wird nicht empfohlen, die Softwareverschlüsselung für Verschlüsselungsbereitstellungen mit einer angemessenen Durchsatzanforderung zu verwenden. Eine Möglichkeit zur Behebung dieses Problems besteht darin, das Volumen des verschlüsselten Datenverkehrs zu reduzieren (Datenverkehr umzuleiten oder die verschlüsselten Datenflüsse zu begrenzen). Der beste Weg, dieses Problem zu beheben, besteht jedoch darin, ein Hardware-Verschlüsselungsmodul für dieses Gerät zu installieren, sodass die Verschlüsselung nicht über die Software erfolgen muss.

Hinweis: Wenn Sie Crypto Maps auf Tunnel-/physischen Schnittstellen aktivieren, verursacht dies den Speicherverbrauch und kann zu einer Erhöhung der CPU führen.

Hohe CPU-Auslastung aufgrund von Fragmentierung

Reassemblierungen können die CPU sehr hoch treiben, wenn die CPU eine große Anzahl von Paketen reassemblieren muss.

Um die hohe CPU-Auslastung aufgrund der Fragmentierung zu beheben, geben Sie den Befehl tcp mss-adjust 1400 an der Schnittstelle ein, mit dem der maximale Segmentgrößenwert (MSS) von TCP-Synchronisierungs-/Start-Paketen (SYN) festgelegt wird, die über einen Router übertragen werden.

Befehle zum Abrufen weiterer Informationen

Diese Befehle liefern weitere Informationen über das Problem:

- show processes cpu

- show interfaces

- show interfaces switching

- show interfaces stat

- show ip nat translations

- show align

- show version

- show log

Weitere Informationen zu show-Befehlen finden Sie in der Befehlsreferenz zu den Cisco IOS-Konfigurationsgrundlagen.

Wenn auf den Router nicht zugegriffen werden kann, fahren Sie ihn zuerst aus und wieder ein. Sammeln Sie dann in regelmäßigen Abständen die Ausgabe der Befehle in diesem Abschnitt, mit Ausnahme der  show log  -Befehl, dessen Meldungen auf einem Syslog-Server protokolliert werden müssen. Das Intervall zum Sammeln der Ausgabe muss fünf Minuten betragen. Mit diesem UNIX-Shell-Skript können Sie die Daten manuell oder automatisch erfassen. Sie können Daten auch mit HTTP oder SNMP erfassen.

Die Fehlermeldung show processes cpu  Command

Dies ist ein Beispiel für den Header des show processes cpu  aus.

CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W%

PID  Runtime(ms)  Invoked  uSecs    5Sec   1Min   5Min TTY Process

Diese Tabelle beschreibt die Felder in der Überschrift:

Feld

Beschreibung

X

Durchschnittliche Gesamtnutzung in den letzten fünf Sekunden (Interrupts + Prozesse)

Y

Durchschnittliche Auslastung aufgrund von Interrupts in den letzten fünf Sekunden^1

Z

Durchschnittliche Gesamtnutzung in letzter Minute^2

W

Durchschnittliche Gesamtnutzung in den letzten fünf Minuten^2

PID

Prozess-ID

Laufzeit

CPU-Zeit, die der Prozess verwendet hat (in Millisekunden)

Aufgerufen

Anzahl der Aufrufe eines Prozesses

Sekunden

CPU-Zeit in Mikrosekunden für jeden Aufruf

5 s

CPU-Auslastung nach Aufgabe in den letzten fünf Sekunden

1 Minute

CPU-Auslastung nach Aufgabe in letzter Minute^2

5 Minuten

CPU-Auslastung nach Aufgabe in den letzten fünf Minuten^2

TTY

Terminal, das den Prozess steuert

Prozess

Name des Prozesses

1 CPU-Auslastung auf Prozessebene = X - Y

2Die Werte stellen kein arithmetisches Mittel dar, sondern einen exponentiell verfallenen Durchschnitt. Jüngere Werte haben somit einen größeren Einfluss auf den berechneten Mittelwert.

Weitere Informationen finden Sie im Referenzhandbuch zu show commands.

Hinweis: Die Gesamt-CPU-Auslastung darf nicht als Maß für die Fähigkeit des Routers verwendet werden, mehr Pakete zu übertragen. Auf Cisco 7500-Routern melden Versatile Interface Processors (VIPs) und Route/Switch Processors (RSPs) keine lineare CPU-Auslastung. Fast die Hälfte der Leistungsaufnahme der Switching-Pakete pro Sekunde fällt nach einer CPU-Auslastung von 90 bis 95 Prozent an.

Die Fehlermeldung show interfaces Command

Dieser Befehl wird verwendet, um aktive Schnittstellen zu bestimmen.

Die Fehlermeldung show interfaces switching  Command

Dieser Befehl wird verwendet, um aktive Switching-Pfade auf Schnittstellen zu bestimmen.

Dies ist eine Beispielausgabe des  show interfaces switching  Befehl für eine Schnittstelle:

RouterA#show interfaces switching

Ethernet0

Throttle count          0

Drops         RP          0         SP          0

SPD Flushes       Fast          0        SSE          0

SPD Aggress       Fast          0

SPD Priority     Inputs          0      Drops          0

Protocol       Path    Pkts In   Chars In   Pkts Out  Chars Out

Other    Process          0          0        595      35700

Cache misses          0

Fast          0          0          0          0

Auton/SSE          0          0          0          0

IP    Process          4        456          4        456

Cache misses          0

Fast          0          0          0          0

Auton/SSE          0          0          0          0

IPX    Process          0          0          2        120

Cache misses          0

Fast          0          0          0          0

Auton/SSE          0          0          0          0

Trans. Bridge    Process          0          0          0          0

Cache misses          0

Fast         11        660          0          0

Auton/SSE          0          0          0          0

DEC MOP    Process          0          0         10        770

Cache misses          0

Fast          0          0          0          0

Auton/SSE          0          0          0          0

ARP    Process          1         60          2        120

Cache misses          0

Fast          0          0          0          0

Auton/SSE          0          0          0          0

CDP    Process        200      63700        100      31183

Cache misses          0

Fast          0          0          0         0

Auton/SSE          0          0          0          0

Die Ausgabe listet die Switching-Pfade für alle auf der Schnittstelle konfigurierten Protokolle auf, sodass Sie leicht sehen können, welche Art und wie viel Datenverkehr durch den Router fließt. In dieser Tabelle werden die Ausgabefelder erläutert.

Feld

Definition

Prozess

Verarbeitete Pakete. Dabei kann es sich um Pakete handeln, die für den Router bestimmt sind, oder um Pakete, für die kein Eintrag im Fast Switching-Cache vorhanden war.

Cache-Fehler

Pakete, für die kein Eintrag im Fast Switching Cache vorhanden war. Das erste Paket für dieses Ziel (oder Fluss - hängt vom konfigurierten Fast Switching-Typ ab) wird verarbeitet. Alle nachfolgenden Pakete werden mit Fast Switching verarbeitet, es sei denn, Fast Switching ist auf der Ausgangsschnittstelle explizit deaktiviert.

Schnell

Schnell geschaltete Pakete Fast Switching ist standardmäßig aktiviert.

Auton/SSE

Autonome Switched, Silicon Switched oder Distributed Switched Packets. Nur verfügbar auf Cisco Routern der Serie 7000 mit einem Switch Processor oder Silicon Switch Processor (für autonomes Switching bzw. Silizium-Switching) oder auf Cisco Routern der Serie 7500 mit einem VIP (für verteiltes Switching).

Die Fehlermeldung  show interfaces stat  Command

Dieser Befehl ist eine zusammengefasste Version des show interfaces switching  aus. Dies ist eine Beispielausgabe für eine Schnittstelle:

RouterA#show interfaces stat

Ethernet0

Switching path    Pkts In   Chars In   Pkts Out  Chars Out

Processor      52077   12245489      24646    3170041

Route cache          0          0          0          0

Distributed cache          0          0          0          0

Total      52077   12245489      24646    3170041

Die Ausgabe des  show interfaces stat  ist für verschiedene Plattformen unterschiedlich und hängt von den verfügbaren und konfigurierten Switching-Pfaden ab.

Die Fehlermeldung  show ip nat translations  Command

Die Fehlermeldung show ip nat translations  zeigt die auf dem Router aktiven NAT-Übersetzungen (Network Address Translation) an. Jede aktive Übersetzung erzeugt CPU-Interrupts und wirkt sich auf die CPU-Auslastung des Routers aus. Eine sehr große Anzahl von Übersetzungen kann die Leistung des Routers beeinträchtigen.

Dies ist eine Beispielausgabe aus dem  show ip nat translations  command:

router#show ip nat translations

Pro Inside global    Inside local    Outside local    Outside global

--- 172.16.131.1     10.10.10.1      ---              ---

Die Fehlermeldung  show align  Command

Dieser Befehl steht nur auf RISC-Prozessorplattformen (Reduced Instruction Set Computing) zur Verfügung. Auf diesen Plattformen kann die CPU Lese- oder Schreibvorgänge korrigieren, die nicht ausgerichtet sind. Dies ist die Beispielausgabe:

Alignment data for:

4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1)

Compiled Tue 31-Mar-98 15:05 by jdoe

Total Corrections 33911, Recorded 2, Reads 33911, Writes 0

Initial Initial

Address Count Access Type Traceback

40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0

40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988

Die Fehlermeldung  show version  Command

Um Probleme bei der CPU-Auslastung zu verfolgen, müssen bei der Befehlsausgabe die Version, die Plattform, der CPU-Typ und die Betriebszeit des Routers der Cisco IOS Software berücksichtigt werden. Die Befehlsreferenz enthält eine detaillierte Erläuterung dieses Befehls.

Die Fehlermeldung  show log  Command

Dieser Befehl zeigt den Inhalt gepufferter Protokollmeldungen an.

EEM-Skripte für die automatische Datenerfassung unter hohen CPU-Bedingungen

Der Embedded Event Manager kann verwendet werden, um Daten automatisch zu erfassen, wenn eine hohe CPU-Auslastung vorliegt.  EEM wird ausgelöst, indem entweder die SNMP-OID für die Prozessnutzung überwacht wird oder indem die Syslog-Meldungen für die Ausgabe des CPU-Schwellwertbefehls überwacht werden. Mithilfe des EEM-Skripts können verschiedene show-Befehle ausgeführt und die Ausgabe im Dateisystem gespeichert werden.

EEM-Beispielskript mit SNMP-OID

Dieses Skript wird ausgeführt, wenn die Prozessauslastung um ca. 85 % steigt.

Weitere Informationen finden Sie unter Erfassen der CPU-Auslastung auf Cisco IOS-Geräten mit SNMP.

event manager applet high-cpu

!

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3 get-type next entry-op gt entry-val 85 poll-interval 5 exit-time 500 maxrun 600

!

action 0.1 cli command "enable"

action 0.2 syslog msg "TAC - Capturing high cpu information to flash:"

action 0.3 cli command "term length 0"

action 1.1 cli command "show process cpu sorted | redirect flash:eem-cpu1.txt"

action 1.2 cli command "show interface | redirect flash:eem-interface1.txt"

action 1.3 cli command "show interface stats | redirect flash:eem-stat1.txt"

action 1.4 cli command "show ip traffic | redirect flash:eem-traffic1.txt"

action 4.1 syslog msg "TAC - Finished logging information to separate eem files in flash"

action 9.4 cli command "end"

action 9.5 cli command "term default length"

!

!

end

EEM-Beispielskript mit den CPU-Schwellenwertbenachrichtigungsmeldungen

Eine Kombination aus EEM und dem Befehl CPU-Grenzwertbenachrichtigungen kann das EEM-Skript auslösen. In diesem Beispiel wird eine CPURISHINGTHRESHOLD-Syslog-Meldung generiert, wenn die Auslastung für einen Zeitraum von 5 Sekunden um mehr als 85 % steigt.  Das EEM-Skript kann die Syslog-Meldung auslösen und eine Liste der Befehle ausführen, die in einer Datei im Dateisystem gespeichert werden.

process cpu threshold type total rising 85 interval 5

!

event manager applet high-cpu

event syslog pattern "CPURISINGTHRESHOLD"

action 0.1 syslog msg "EEM: HIGH CPU detected. Writing info to flash:eem-log.txt"

action 0.2 cli command "enable"

action 0.3 cli command "term exec prompt timestamp"

action 0.4 cli command "term len 0"

action 1.1 cli command "show process cpu sorted | append flash:eem-log.txt"

action 1.2 cli command "show proc mem sorted | append flash:eem-log.txt"

action 1.3 cli command "show mem alloc total | append flash:eem-log.txt"

action 2.2 syslog msg "EEM: Self-removing applet from configuration..."

action 2.5 cli command "end"

!

end

EEM-Beispielskript zum Starten/Anhalten des CPU-Profils

EEM wird zum Starten/Stoppen der CPU-Profilerstellung sowie zum Protokollieren von Daten verschiedener Anzeigebefehle verwendet. Weitere Informationen finden Sie unter Troubleshooting High CPU Utilization Due to Interrupts (Fehlerbehebung bei hoher CPU-Auslastung aufgrund von Interrupts).

event manager applet High_CPU

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 get-type exact entry-op ge entry-val "75" exit-time 10 poll-interval 5

action 0.1 syslog msg "CPU Utilization is high"

action 0.2 cli command "enable"

action 0.4 cli command "show version | append flash:CPU_Profile.txt"

action 0.4 cli command "show log | append flash:CPU_Profile.txt"

action 0.5 cli command "show process cpu sorted | append flash:CPU_Profile.txt"

action 0.6 cli command "show interfaces | append flash:CPU_Profile.txt"

action 0.7 cli command "show region | append flash:CPU_Profile.txt"

action 1.2 cli command "profile 4000F000 42C9FFFF 4"

action 1.3 cli command "profile start"

action 2.3 syslog msg "Entering TCLSH"

action 2.4 cli command "tclsh"

action 2.5 cli command "after 240000"

action 2.6 cli command "exit"

action 2.9 syslog msg "Exiting TCLSH"

action 3.0 cli command "profile stop"

action 3.1 cli command "show profile terse | append flash:CPU_Profile.txt"

action 3.2 cli command "clear profile"

action 3.3 cli command "unprofile all"

action 4.1 syslog msg "Finished logging information to flash:CPU_Profile.txt..."

action 4.2 cli command "end"

UNIX-Shellskript für die periodische Datenerfassung

In diesem Anhang wird ein einfaches Skript beschrieben, das in regelmäßigen Abständen Daten vom Router erfasst. Der Kern des Skripts ist diese Zeile:

(echo "show version") | telnet 192.168.1.1

Der Befehl in Klammern wird in der Sub-Shell ausgeführt, und die Ausgabe wird an eine Telnet-Sitzung gesendet. Dies ist ein Beispielskript zum Erfassen der Ausgabe des  show version  und  show processes cpu  Befehle:

#!/opt/local/bin/bash

###########################################

# Router's IP address

#

IP_ADDRESS='10.200.40.53'

# Directory where the log files can be stored

#

DIR=/var/log/router

########################################

if [ ! -e $DIR ]

then

mkdir $DIR

fi

# Tag specification: mmddhhmm

DATE=`date +'%m%d'`

TIME=`date +'%H%M'`

TAG=$DATE$TIME

# Collect data from the router

(echo "foo";\

echo "bar";\

echo "term len 0";\

echo "show version";\

echo "show processes cpu";\

echo "term len 15";\

echo "show memory summary";\

echo "q";\

sleep 30)|telnet $IP_ADDRESS > $DIR/info.$TAG 2>$DIR/info.$TAG.msg

Hinweis: In diesem Skript werden alle Daten, einschließlich des Kennworts, in einem unverschlüsselten Format gesendet.

Im ersten Abschnitt müssen Sie die IP-Adresse und das Zielverzeichnis für Protokolldateien angeben. Der zweite Abschnitt enthält die tatsächlichen Befehle, die an den Router gesendet werden. Die erste ist der Benutzername, dann das Passwort, und so weiter. nur die ersten Zeilen der Ausgabe bestimmter Befehle zu erfassen ist enthalten. Die Terminallänge wird auf eine kurze Länge gesetzt (in diesem Fall auf 15), und das "q"-Zeichen wird nur per Eingabeaufforderung gesendet.

Wenn Daten regelmäßig gesammelt werden, wird die Ausgabe von  show version  zeigt, ob das Problem periodisch auftritt, z. B. wenn es immer zu einer bestimmten Tageszeit oder an einem bestimmten Wochentag auftritt. Wenn Sie die Ausgabe weiterer Befehle erfassen müssen, können diese dem Skript auf die gleiche Weise hinzugefügt werden, wie im Beispiel gezeigt. Wenn Sie die an die Datei gesendete Ausgabe kürzen müssen, erhöhen Sie zuerst die Ruhezeit (der Befehl sleep in Klammern).

Führen Sie dieses Skript alle fünf Minuten aus, wenn das Problem der hohen CPU-Auslastung häufig auftritt und nicht lange andauert. Andernfalls kann es alle 15 bis 30 Minuten ausgeführt werden. Speichern Sie das Skript aus Gründen der Benutzerfreundlichkeit in einer Datei wie /usr/bin/router-script . Um es dann alle fünf Minuten auszuführen, fügen Sie die nächste Zeile in die Datei /etc/crontab ein:

*/5       *       *       *       *       /usr/bin/router-script

Starten Sie den Cron-Server neu. Wenn Sie nicht die Berechtigung haben, die Datei /etc/crontab zu ändern, führen Sie das Skript in einem separaten Prozess aus. Beispiel:

while [ 1 ]; do ./router-script ; sleep 300; done &

Zugehörige Informationen

- Hohe CPU-Auslastung auf Catalyst Switches der Serien 2900XL/3500XL

- Performance Tuning Basics

- Technischer Support und Downloads von Cisco