Routeurs : Routeurs de la gamme Cisco 7500

Dépannage de l'utilisation du CPU élevée due à des interruptions

16 janvier 2016 - Traduction automatique
Autres versions: PDFpdf | Anglais (31 décembre 2015) | Commentaires


Contenu


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.

Composants utilisés

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

Les informations contenues dans ce document ont été créées à partir des périphériques d'un environnement de laboratoire spécifique. Tous les périphériques utilisés dans ce document ont démarré avec une configuration effacée (par défaut). Si votre réseau est opérationnel, assurez-vous que vous comprenez l'effet potentiel de toute commande.

Conventions

Pour plus d'informations sur les conventions de documents, reportez-vous à Conventions relatives aux conseils techniques Cisco.

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 :

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 le NetFlow chacun des deux sont 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 y a une possibilité qu'un dispositif génère des paquets à un débit extrêmement élevé et surcharge de ce fait le routeur, vous pouvez déterminer l'adresse MAC de ce périphérique en ajoutant la commande ip accounting mac-address {entrée|sortie} de configuration d'interface à 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.

Terminez-vous ces étapes afin d'exécuter le profilage CPU. L'utilisation de la CPU doit être effectuée en cas d'utilisation élevée de la CPU.

Remarque: Toutes ces commandes doivent être saisies quand vous êtes en mode enable

  1. Saisissez le résultat de show region et prenez l'adresse de début, l'adresse de fin et la taille de la canalisation : zone de texte

  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 canalisation : zone de texte avec la taille du plus grand bloc de mémoire processeur libre. Dans le meilleur des cas, le plus grand bloc devrait être plus grand que la canalisation : texte.

    Si le plus grand bloc est plus petit que la canalisation : la taille du texte, réglez alors la finesse pour vous assurer que le profilage pourra obtenir un bloc de mémoire processeur.

    Si le plus grand bloc est plus petit que la canalisation : la zone de texte, utilisez une finesse de 4.

    Si le plus grand bloc est plus grand que la moitié de la canalisation : la zone de texte, utilisez une finesse de 8.

    Si le plus grand bloc est plus grand qu'un quart de la canalisation : la zone de texte, utilisez une finesse de 10 (16 en hexadécimal).

    Remarque: La finesse doit être à la puissance 2 et 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
Processus 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.
Rapide 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 de gagner la CPU profilant à la CPU de haute

Ce script enregistre les sorties sur l'éclair : CPU_Profile quand l'utilisation du processeur est plus de 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"

Conversations connexes de la communauté de soutien de Cisco

Le site Cisco Support Community est un forum où vous pouvez poser des questions, répondre à des questions, faire part de suggestions et collaborer avec vos pairs.


Informations connexes


Document ID: 41120