Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Conventions

Quels sont les processus d'exécution et d'exécution virtuelle ?

Comment les processus d'exécution et d'exécution virtuelle peuvent-ils entraîner une utilisation CPU élevée ?

Dépannage de l'utilisation CPU élevée dans le processus d'exécution

Dépannage de l'utilisation CPU élevée dans le processus d'exécution virtuelle

Informations connexes

Introduction

Ce document explique les processus Exec et Virtual Exec, et comment dépanner une utilisation du CPU élevée dans ces processus.

Conditions préalables

Exigences

Cisco recommande que vous lisiez la section Dépannage de surutilisation de la CPU sur des routeurs Cisco avant que vous poursuiviez ce document.

Composants utilisés

Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.

Les informations présentées dans ce document ont été créées à partir de périphériques dans un environnement de laboratoire spécifique. All of the devices used in this document started with a cleared (default) configuration. Si vous travaillez dans un réseau opérationnel, assurez-vous de bien comprendre l'impact potentiel de toute commande avant de l'utiliser.

Conventions

Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Quels sont les processus d'exécution et d'exécution virtuelle ?

Le processus d’exécution de la plate-forme logicielle Cisco IOS® est responsable de la communication sur les lignes tty (console, auxiliaire, asynchrone) du routeur. Le processus Virtual Exec est responsable des lignes VTY (sessions Telnet).

Les processus d'exécution et d'exécution virtuelle sont des processus de priorité moyenne. Par conséquent, si d'autres processus ont une priorité plus élevée (élevée ou critique), les processus de priorité plus élevée obtiennent les ressources du processeur.

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

Référez-vous à La commande show processes pour une explication complète du résultat de cette commande.

Comment les processus d'exécution et d'exécution virtuelle peuvent-ils entraîner une utilisation CPU élevée ?

Si beaucoup de données sont transférées par ces sessions, l'utilisation de la CPU pour le processus Exec augmente.

La raison est que quand le routeur veut envoyer un caractère simple par ces lignes, le routeur utilise certaines ressources de la CPU :

- Pour la console (Exec), le routeur utilise une interruption par caractère.

L'interruption de la console peut être vue dans le résultat de la commande show stacks :

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

- Pour la ligne vty (Virtual Exec), la session Telnet doit créer un paquet TCP et envoyer le ou les caractères au client Telnet.

Dépannage de l'utilisation CPU élevée dans le processus d'exécution

Voici quelques raisons possibles pour une utilisation élevée du CPU dans le processus d'exécution :

- Trop de données sont envoyées via le port de console.

Un trop grand nombre de messages de console générés par le routeur est une cause possible.

1. Vérifiez si des débogages ont commencé sur le routeur avec la commande show debugging.

2. Désactivez la journalisation de la console sur le routeur avec (pas de console de journalisation ).

3. Vérifiez si une sortie longue est imprimée sur la console (par exemple, show tech-support ou show memory).

- Le logiciel Cisco IOS présente un bogue.

Utilisez le Bug Toolkit (clients enregistrés uniquement) pour rechercher les bogues avec ce symptôme dans votre version du logiciel Cisco IOS.

- La commande exec est configurée pour les lignes asynchrones et auxiliaires.

- Si une ligne n'a que du trafic sortant, le processus d'exécution doit être désactivé pour cette ligne, car si le périphérique (par exemple, un modem) connecté à cette ligne envoie des données non sollicitées, le processus d'exécution démarre sur cette ligne.

- Si le routeur est utilisé comme terminal-server (pour une connexion Telnet inverse à d'autres consoles de périphériques), il est recommandé de configurer no exec sur les lignes qui sont connectées à la console des autres périphériques. Sinon, les données qui reviennent de la console pourraient commencer un processus Exec, ce qui utilise des ressources de la CPU.

Dépannage de l'utilisation CPU élevée dans le processus d'exécution virtuelle

Voici quelques raisons possibles pour une utilisation élevée du CPU dans le processus Virtual Exec :

- Un bogue logiciel dans le logiciel Cisco IOS

Utilisez le Bug Toolkit (clients enregistrés uniquement) pour rechercher les bogues présentant ce symptôme pour votre version du logiciel Cisco IOS.

- Trop de données sont envoyées sur les sessions Telnet.

La raison la plus fréquente d'utilisation élevée de la CPU dans le processus Virtual Exec est que trop de données sont transférées du routeur à la session Telnet.

Cela peut se produire lorsque des commandes avec des sorties longues (telles que show tech-support, show memory, etc.) sont exécutées à partir de la session telnet.

La quantité de données transférées via chaque session vty peut être vérifiée avec la commande show tcp :

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

- Une session Telnet bloquée entraîne un CPU élevé en raison du processus Virtual Exec. Afin d'effacer la session Telnet bloquée, le périphérique doit être rechargé dans la plupart des cas. L’autre façon d’effacer la session Telnet bloquée est d’effacer le processus TCP. Le processus TCP peut être identifié avec la commande show tcp brief comme dans ce résultat :

Router#show tcp brief

TCB       Local Address           Foreign Address        (state)

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

À partir du résultat ci-dessus, le processus TCP 02FA62D0 doit être effacé afin d'effacer la session Telnet bloquée avec la commande clear tcp tcb 0x02fa62d0 .

Informations connexes

- Dépannage de l'utilisation élevée du CPU sur les routeurs Cisco

- Support technique - Cisco Systems