Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Conventions

Causes possibles d'utilisation élevée de la CPU en raison d'interruptions

Chemin de commutation inadéquat

La CPU effectue des corrections de cadrage

Routeur surchargé de trafic

Bogue logiciel

Ports vocaux configurés sur le routeur

Interfaces de Mode de transfert asynchrone (ATM) actives sur le routeur

Beaucoup de coups de volée du Parallel Express Forwarding (PXF) au RP

Profilage de la CPU

Commande show interfaces switching

Exemple de script afin d'obtenir le profilage du CPU à un CPU élevé

Informations connexes

Introduction

Ce document explique les raisons pour l'utilisation élevée de la CPU en raison d'interruptions et fournit des conseils de dépannage et des directives.

Conditions préalables

Conditions requises

Aucune spécification déterminée n'est requise pour ce document.

Components Used

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

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Conventions

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

Causes possibles d'utilisation élevée de la CPU en raison d'interruptions

L'utilisation élevée de la CPU à un niveau de priorité d'interruption est principalement due à des paquets pris en charge au niveau de priorité d'interruption. Des interruptions sont générées quand un caractère est produit par la console ou les ports auxiliaires d'un routeur.

Les récepteurs/émetteurs asynchrones universels (UART) sont lents par rapport à la vitesse de traitement du routeur; il est donc peu probable, bien que possible, que la console ou les interruptions auxiliaires puissent entraîner une utilisation élevée de la CPU sur le routeur (à moins que le routeur ait un grand nombre de lignes tty en service).

Il y a plusieurs raisons pour une utilisation élevée du CPU due à des interruptions :

- Un chemin de commutation inadéquat est configuré sur le routeur

- La CPU effectue des corrections de cadrage

- Le routeur est surchargé de trafic

- Il y a un bogue dans le logiciel Cisco IOS® exécuté sur le routeur

- Des ports vocaux sont configurés sur le routeur

- Il y a des interfaces de Mode de transfert asynchrone (ATM) actives sur le routeur

- Trop de coups de volée sont donnés depuis le PXF vers le processeur de routage (RP)

Chemin de commutation inadéquat

Pour dépanner ce problème potentiel, vérifiez ce qui suit :

- Vérifiez si le routeur exécute Cisco Express Forwarding :

- Vérifiez la configuration pour la commande de configuration globale ip cef .

- Vérifiez que Cisco Express Forwarding est activé et fonctionne bien en émettant la commande show ip cef summary.

- Vérifiez que Cisco Express Forwarding est activé comme chemin de commutation sur toutes les interfaces. Vous pouvez le voir dans le résultat de show cef interface et de show ip interface. Si Cisco Express Forwarding est configuré, mais pas activé sur une interface, cela signifie que l'encapsulation d'interface n'est pas prise en charge dans Cisco Express Forwarding. Vérifiez que Cisco Express Forwarding est opérationnel, c.-à-d. qu'il contrôle si des paquets sont vraiment commutés par le routeur à l'aide de Cisco Express Forwarding en regardant show cef not-cef-switched.

- En utilisant la commande show cef drop et la commande show interfaces switching (il s'agit d'une commande cachée que vous pouvez employer pour rechercher des éléments non retrouvés en cache), vérifiez que Cisco Express Forwarding ne dépose pas de paquets. Si c'est le cas, consultez la page de dépannage CEF.

- Vérifiez si des interfaces ont de longues listes d'accès configurées.

- En règle générale, n'importe quelle liste d'accès avec plus de dix lignes est considérée comme longue.

- Le fait de repasser plusieurs fois sur de longues listes d'accès sollicite énormément la CPU. Avec la commutation Netflow, si le flux est déjà dans le cache, vous ne devez plus vérifier la liste d'accès. Dans ce cas, la commutation Netflow serait donc utile. Vous pouvez activer la commutation Netflow en émettant la commande ip route-cache flow.

- Notez que si Cisco Express Forwarding et NetFlow sont tous deux configurés sur une interface, Cisco Express Forwarding sera utilisé pour prendre une décision de commutation.

- Vérifiez que la commutation Netflow est configurée sur le routeur :

- Vérifiez les statistiques en émettant la commande show ip cache flow. Regardez le nombre de nouveaux flux par seconde.

- Si Cisco Express Forwarding n'est pas activé, activez-le pour accélérer la décision de commutation.

- S'il n'y a aucune longue liste d'accès, essayez de désactiver la commutation Netflow.

La CPU effectue des corrections de cadrage

Des erreurs d'alignement sont entraînées par un mauvais alignement de lecture et écriture. Par exemple, une lecture à deux bits où l'adresse mémoire n'est pas un multiples pair de deux octets constitue une erreur d'alignement.

Des erreurs d'alignement sont habituellement entraînées par un bogue logiciel. La CPU corrige cette erreur, mais s'il y a beaucoup de corrections à faire, ceci sollicite énormément la CPU. Pour dépanner ce type d'erreur, consultez la section Dépannage des accès erratiques, des erreurs d'alignement et des interruptions intempestives.

Routeur surchargé de trafic

Le résultat des commandes show interfaces et show interfaces switching (masquées) fournissent les informations au sujet des interfaces surchargées. Pour saisir le résultat de ces commandes dans un fichier journal pour l'analyser ensuite, suivez les étapes ci-dessous.

1. Émettez la commande terminal length 0.

2. Vérifiez le résultat de show interfaces. Examinez la charge et le nombre de throttles sur les interfaces. La charge est une valeur moyenne calculée, par défaut, sur plus de cinq minutes. Pour modifier cet intervalle, émettez la commande load-interval seconds , où les secondes représentent la durée pour laquelle les données sont utilisées pour calculer des statistiques de charge. Utilisez une valeur multiple de 30.

Les throttles sont une bonne indication d'un routeur surchargé. Ils montrent le nombre de fois où le récepteur sur le port a été désactivé, probablement en raison d'une surcharge du tampon ou du processeur. En même temps que l'utilisation élevée de la CPU à un niveau de priorité d'interruption, les throttles indiquent que le routeur est surchargé de trafic.

3. Vérifiez le résultat de la commande show interfaces switching (masquée) pour voir quel type de trafic (protocole et chemin de commutation) passe par l'interface surchargée. Si certaines interfaces sont trop surchargées de trafic, envisagez de remodeler le flux de trafic dans le réseau ou de mettre à niveau le matériel.

4. La boucle dans le réseau peut également être une raison pour la surcharge du trafic de routage. Vérifiez la topologie du réseau.

S'il est possible qu'un seul périphérique génère des paquets à un débit extrêmement élevé et surcharge ainsi le routeur, vous pouvez déterminer l'adresse MAC de ce périphérique en ajoutant la commande de configuration d'interface ip accounting mac-address {input|output} à la configuration de l'interface surchargée.

La commande show interfaces [ ] mac-accounting affiche les informations collectées. Une fois que l'adresse MAC de l'équipement d'origine a été trouvée, l'adresse IP correspondante peut être recherchée en vérifiant le résultat de la commande show ip arp.

Bogue logiciel

Si vous suspectez un bogue dans la version du logiciel Cisco IOS exécutée sur le routeur, vous pouvez consulter la Boîte à outil de débogage (clients enregistrés seulement) pour voir s'il existe un bogue signalant le même type de symptômes dans un environnement semblable.

Ports vocaux configurés sur le routeur

Même s'il n'y a aucun trafic, le logiciel continue à contrôler le canal de signalisation associé (CAS), qui utilise des ressources CPU.

Interfaces de Mode de transfert asynchrone (ATM) actives sur le routeur

Même s'il n'y a aucun trafic, les interfaces ATM envoient la cellule nulle (conformément aux normes ATM) et continuent à utiliser des ressources CPU.

Beaucoup de coups de volée du Parallel Express Forwarding (PXF) au RP

Quand PXF donne un coup de volée à trop de paquets vers le RP, le RP peut devenir surchargé. Vous pouvez comparer la quantité de paquets auxquels un coup de volée a été donné avec la quantité totale de paquets entrants en émettant la commande show pxf accounting summary. Utilisez la même commande pour découvrir pourquoi un coup de volée est donné aux paquets vers le RP. Cela pourrait être dû à un bogue logiciel ou au fait que le trafic n'est pas pris en charge par PXF.

Profilage de la CPU

Le profilage de la CPU est une façon de déterminer, avec une faible surcharge, où la CPU passe son temps. Le système fonctionne en échantillonnant l'emplacement du processeur toutes les quatre millisecondes. Le nombre correspondant à cet emplacement est incrémenté dans la mémoire. La cause d'origine de cette utilisation de la CPU sera déterminée par le profilage de la CPU.

Complétez ces étapes afin d'effectuer le profilage du processeur. L'utilisation de la CPU doit être effectuée en cas d'utilisation élevée de la CPU.

Remarque : Toutes ces commandes doivent être tapées en mode enable

1. Capturez le résultat de show region et prenez l'adresse de départ, l'adresse de fin et la taille de la zone main:text

2. Saisissez le résultat de show memory statistics et vérifiez la taille du plus grand bloc dans la mémoire du processeur.

3. Effectuez la commande profile task interrupt pour configurer le profilage seulement pour les interruptions.

4. Comparez la taille de la zone main:text à celle du bloc de mémoire processeur libre le plus important. Idéalement, le bloc le plus grand doit être plus grand que le texte principal :.

Si le bloc le plus grand est plus petit que la taille de texte principal, ajustez la granularité pour vous assurer que le profilage sera capable d'obtenir un bloc de mémoire processeur.

Si le bloc le plus grand est plus grand que la région main : texte, utilisez une granularité de 4.

Si le bloc le plus grand est plus grand que la moitié de la région main:text, utilisez une granularité de 8.

Si le bloc le plus grand est supérieur à un quart de la région main:text, utilisez une granularité de 10 (16 en hexadécimal).

Note : La granularité doit être une puissance de 2 et doit être aussi petite que possible (mais pas inférieure à 4)

5. Commencez le profilage en effectuant la commande profile

Profile <starting address> <ending address> <granularity value>

L'adresse de début et de fin est déterminée à l'étape 1.

6. Attendez 5 à 10 minutes

7. Interrompez le profilage avec la commande profile stop

8. Saisissez le résultat de show profile terse.

9. Assurez-vous que la mémoire est libérée en faisant unprofile all

Commande show interfaces switching

Cette commande est utilisée pour déterminer les chemins de commutation actifs sur des interfaces. Pour plus d'informations sur les chemins de commutation dans le logiciel Cisco IOS, référez-vous au document Configuration des chemins de commutation .

Ce qui suit est un exemple de sortie de la commande de show interfaces switching pour une interface :

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

La sortie indique les chemins de commutation pour tous les protocoles configurés sur l'interface, pour que vous puissiez facilement voir quelle sorte et quel niveau de trafic passe par le routeur. Le tableau ci-dessous explique les différents champs de résultat :

Champ

Définition

Process

Paquets traités. Ceux-ci peuvent être des paquets destinés au routeur, ou des packets pour lesquels il n'y avait aucune entrée dans le cache de commutation rapide.

Cache misses

Paquets pour lesquels il n'y avait aucune entrée dans le cache de commutation rapide. Le premier paquet pour cette destination (ou flux - selon le type de commutation rapide configuré) sera traité. Tous les paquets suivants seront rapidement commutés, à moins que la commutation rapide soit explicitement désactivée sur l'interface de sortie.

Fast

Paquets commutés rapidement. La commutation rapide est activée par défaut.

Auton/SSE

Paquets commutés autonomes, par silicium ou distribués. Disponible seulement sur les routeurs de la gamme Cisco 7000 avec un processeur de commutateur ou un processeur de commutation par silicium (respectivement pour la commutation autonome ou la commutation par silicium), ou sur les routeurs de la gamme Cisco 7500 avec un VIP (pour la commutation distribuée).

Exemple de script afin d'obtenir le profilage du CPU à un CPU élevé

Ce script enregistre les sorties sur flash:CPU_Profile lorsque l'utilisation du CPU est supérieure à 75 % :

service internal

event manager applet High_CPU

event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6 get-type

next entry-opge 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 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 1.1 cli command "configure terminal"

action 1.2 cli command "profile xxxxxxx yyyyyyyyZ"

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"

Informations connexes

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

- Support et documentation techniques - Cisco Systems