Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konventionen

Was sind die Exec- und Virtual Exec-Prozesse?

Wie können die Exec- und Virtual Exec-Prozesse eine hohe CPU-Auslastung verursachen?

Fehlerbehebung bei hoher CPU-Auslastung im Exec-Prozess

Fehlerbehebung bei hoher CPU-Auslastung im Virtual Exec-Prozess

Zugehörige Informationen

Einführung

In diesem Dokument werden die Exec- und Virtual Exec-Prozesse erläutert, und es wird erläutert, wie die hohe CPU-Auslastung in diesen Prozessen behoben wird.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie die Fehlerbehebung bei hoher CPU-Auslastung auf Cisco Routern lesen, bevor Sie mit diesem Dokument fortfahren.

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 sich Ihr Netzwerk in der Produktionsumgebung befindet, müssen Sie sich bei jedem Befehl zunächst dessen potenzielle Auswirkungen vor Augen führen.

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).

Was sind die Exec- und Virtual Exec-Prozesse?

Der Exec-Prozess in der Cisco IOS®-Software ist für die Kommunikation auf den tty-Zeilen (Konsole, Hilfsmittel, asynchron) des Routers verantwortlich. Der Virtual Exec-Prozess ist für die vty-Zeilen (Telnet-Sitzungen) verantwortlich.

Die Exec- und Virtual Exec-Prozesse sind Prozesse mit mittlerer Priorität. Wenn es also andere Prozesse mit höherer Priorität (hoch oder kritisch) gibt, erhalten die Prozesse mit höherer Priorität die CPU-Ressourcen.

router#show process | i CPU|Exec

CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0%

PID QTy       PC Runtime (ms)    Invoked   uSecs    Stacks TTY Process

22 M*         0         9644       1733    5564 9732/12000  0 Exec

46 ME  80468980           28          6    466610520/12000 66 Virtual Exec

Eine vollständige Erklärung der Ausgabe dieses Befehls finden Sie unter Befehl show process Command.

Wie können die Exec- und Virtual Exec-Prozesse eine hohe CPU-Auslastung verursachen?

Wenn viele Daten durch diese Sitzungen übertragen werden, nimmt die CPU-Auslastung für den Exec-Prozess zu.

Wenn der Router ein einfaches Zeichen durch diese Leitungen senden möchte, verwendet der Router einige CPU-Ressourcen:

- Für die Konsole (Exec) verwendet der Router einen Interrupt pro Zeichen.

Die Konsolenunterbrechung wird in der Befehlsausgabe show stacks angezeigt:

router#show stacks

Minimum process stacks:

Free/Size   Name

11516/12000  Router Init

9404/12000  Init

5520/6000   AIM_MIB_CREATION

5448/6000   RADIUS INITCONFIG

9728/12000  Virtual Exec

Interrupt level stacks:

Level    Called Unused/Size  Name

1    23035463   7008/9000  Network interfaces

2           0   9000/9000  Timebase Reference Interrupt

3           0   9000/9000  PA Management Int Handler

6        9791   8892/9000  16552 Con/Aux Interrupt

7  1334963882   8920/9000  MPC860 TIMER INTERRUPT

- Für die VTY-Zeile (Virtual Exec) muss die Telnet-Sitzung ein TCP-Paket erstellen und die Zeichen an den Telnet-Client senden.

Fehlerbehebung bei hoher CPU-Auslastung im Exec-Prozess

Im Folgenden sind einige mögliche Gründe für eine hohe CPU-Auslastung im Exec-Prozess aufgeführt:

- Über den Konsolenport werden zu viele Daten gesendet.

Eine mögliche Ursache hierfür sind zu viele vom Router generierte Konsolenmeldungen.

1. Überprüfen Sie, ob auf dem Router mit dem Befehl show debugging (Debuggen anzeigen) Debug gestartet wurde.

2. Deaktivieren Sie die Konsolenprotokollierung auf dem Router mit (keineProtokollkonsole).

3. Überprüfen Sie, ob eine lange Ausgabe auf der Konsole ausgegeben wird (z. B. ein show tech-support oder ein show memory).

- In der Cisco IOS-Software ist ein Fehler aufgetreten.

Verwenden Sie das Bug Toolkit (nur registrierte Kunden), um nach Fehlern mit diesem Symptom in Ihrer Cisco IOS-Softwareversion zu suchen.

- Der Befehl exec wird für asynchrone und Hilfslinien konfiguriert.

- Wenn eine Leitung nur ausgehenden Datenverkehr hat, sollte der Exec-Prozess für diese Leitung deaktiviert werden. Wenn das an diese Leitung angeschlossene Gerät (z. B. ein Modem) unaufgeforderte Daten sendet, beginnt der Exec-Prozess für diese Leitung.

- Wenn der Router als Terminalserver (für umgekehrtes Telnet zu anderen Gerätekonsolen) verwendet wird, wird empfohlen, keine Exec-Konfiguration für die Leitungen zu konfigurieren, die mit der Konsole der anderen Geräte verbunden sind. Daten, die von der Konsole zurückgegeben werden, können ansonsten einen EXEC-Prozess starten, der CPU-Ressourcen verwendet.

Fehlerbehebung bei hoher CPU-Auslastung im Virtual Exec-Prozess

Im Folgenden sind einige mögliche Gründe für eine hohe CPU-Auslastung im Virtual Exec-Prozess aufgeführt:

- Ein Softwarefehler in der Cisco IOS-Software

Verwenden Sie das Bug Toolkit (nur registrierte Kunden), um nach Fehlern mit diesem Symptom für Ihre Cisco IOS-Softwareversion zu suchen.

- In den Telnet-Sitzungen werden zu viele Daten gesendet.

Der häufigste Grund für eine hohe CPU-Auslastung im Virtual Exec-Prozess ist, dass zu viele Daten vom Router an die Telnet-Sitzung übertragen werden.

Dies kann passieren, wenn Befehle mit langen Ausgaben (wie show tech-support, show memory usw.) von der Telnet-Sitzung ausgeführt werden.

Die Datenmenge, die über jede VTY-Sitzung übertragen wird, kann mit dem Befehl show tcp überprüft werden:

router#show tcp vty 0

tty66, virtual tty from host 10.48.77.64

Connection state is ESTAB, I/O status: 1, unread input bytes: 1

Local host: 10.48.77.27, Local port: 23

Foreign host: 10.48.77.64, Foreign port: 11006

........

Datagrams (max data segment is 1460 bytes):

Rcvd: 525 (out of order: 0), with data: 53, total data bytes: 87

Sent: 366 (retransmit: 257, fastretransmit: 0), with data: 356, total data bytes:

158187

- Eine Sitzung ohne Telnet führt aufgrund des Virtual Exec-Prozesses zu einer hohen CPU. Um die unterbrochene Telnet-Sitzung zu löschen, muss das Gerät in den meisten Fällen neu geladen werden. Die andere Möglichkeit, die aufgehängte Telnet-Sitzung zu löschen, besteht darin, den TCP-Prozess zu löschen. Der TCP-Prozess kann mit dem Befehl show tcp brief wie in dieser Ausgabe identifiziert werden:

Router#show tcp brief

TCB       Local Address           Foreign Address        (state)

02FA62D0  172.16.152.75.23        dhcp-171-69-104-.3013  ESTAB

Von der oben angegebenen Ausgabe muss der TCP-Prozess 02FA62D0 gelöscht werden, um die nicht mehr reagierende Telnet-Sitzung mit dem Befehl clear tcp tcb 0x02fa62d0 zu löschen.

Zugehörige Informationen

- Fehlerbehebung bei hoher CPU-Auslastung auf Cisco Routern

- Technischer Support – Cisco Systems