Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Symptômes d'une utilisation élevée du CPU

Dépannage de l'utilisation CPU élevée

Déterminer les causes et résoudre le problème

Utilisation élevée du CPU en raison d'interruptions

Utilisation élevée du CPU lors de l'activation de Netflow NDE sur les routeurs de la gamme Cisco 7600

Utilisation élevée du CPU due aux processus

Les pools PCI et Mémoire rapide montrent des taux d'utilisation très élevés

%SNMP-4-HIGHCPU : le processus dépasse le seuil [dec]ms ([dec]ms quantum IOS) pour [chars] de [chars]—résultat [chars]

Utilisation élevée du CPU en raison du chiffrement logiciel

Utilisation élevée de l’UCT causée par la fragmentation

Commandes pour obtenir plus d'informations

La commande show processes cpu

La commande show interfaces

La commande show interfaces switching

La commande show interfaces stat

La commande show ip nat translations

La commande show align

La commande show version

La commande show log

Scripts EEM pour la collecte automatique de données dans des conditions CPU élevées

Exemple de script EEM avec l'OID SNMP

Exemple de script EEM avec les messages de notification de seuil de CPU

Exemple de script EEM pour démarrer/arrêter le profil du processeur

Script shell UNIX pour la collecte périodique de données

Informations connexes

Introduction

Ce document décrit les symptômes et les causes courants de l'utilisation élevée du CPU sur les routeurs Cisco et fournit des directives et des solutions pour les problèmes courants.

Conditions préalables

Exigences

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- Routeurs Cisco

- Chemins de commutation du logiciel Cisco IOS®

Pour des informations concernant les chemins de commutation de logiciel IOS de Cisco, consultez Bases de l'optimisation des performances.

Composants utilisés

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. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Symptômes d'une utilisation élevée du CPU

Cette liste décrit les symptômes courants d'une utilisation élevée du CPU. Si vous remarquez l'un de ces symptômes, résolvez le problème à l'aide des étapes fournies dans ce document.

- Des pourcentages élevés dans la  show processes cpu  résultat de la commande.

Si vous avez les données de sortie de la commande show processes cpu de votre appareil Cisco, vous pouvez utiliser l’application Cisco CLI Analyzer pour afficher des problèmes potentiels et de correctifs.

Remarque : pour utiliser Cisco CLI Analyzer, vous devez être un utilisateur Cisco enregistré, être connecté et avoir activé JavaScript.

- Performance ralentie

- Les services du routeur ne répondent pas, par exemple :

- Réponse lente en Telnet ou incapable de Telnet vers le routeur

- Réponse lente dans la console

- Lent ou aucune réponse au ping

- Le routeur n'envoie pas les mises à jour de routage aux autres routeurs

- Nombre élevé d’erreurs de mémoire tampon

Dépannage de l'utilisation CPU élevée

Quand vous remarquez n’importe lequel des Symptômes d’utilisation élevée de l’UCT :

- Vérifiez qu'il n'y ait pas de problème de sécurité. Généralement, l'utilisation élevée du CPU est provoquée par un problème de sécurité, tel qu'un ver ou un virus présent dans votre réseau. C'est d'autant plus probable s'il n'y a pas eu de changements récents apportés à votre réseau. En général, une modification de la configuration, lorsque vous ajoutez des lignes supplémentaires à vos listes d’accès, peut atténuer les effets de ce problème. Notifications et conseils de sécurité au sujet des produits Cisco contient des informations sur la détection des causes le plus probables et des solutions alternatives spécifiques.

Pour des informations supplémentaires, référez-vous à :

- 100 questions et réponses au sujet des menaces d'Internet

- Notifications et conseils de sécurité au sujet des produits Cisco

- Contrôle des menaces de Cisco

- Assurez-vous que tous  debug  dans votre routeur sont désactivées avec la commande undebug all ou no debug all  de l'assistant.

- Pouvez-vous émettre  show sur le routeur ? Si oui, commencez à recueillir plus d'informations immédiatement, avec ces  show de l'assistant.

- Le routeur est-il inaccessible ? Pouvez-vous reproduire ce problème ? Si oui, mettez le routeur hors tension puis sous tension et, avant de reproduire le problème, configurez le  scheduler interval 500  erasecat4000_flash:. Ceci programme les processus à priorité basse pour qu'ils se lancent toutes les 500 millisecondes, ce qui vous donne le temps de lancer plusieurs commandes, même si l'utilisation du CPU est à 100 pour cent. Sur les routeurs Cisco 7200 et Cisco 7500, utilisez la  scheduler allocate 3000 1000  erasecat4000_flash:.

- Le routeur montre-t-il des symptômes d'une utilisation élevée du CPU à des intervalles brefs et imprévisibles ? Si oui, collecter périodiquement la sortie du  show processes cpu  , qui indique si l'utilisation élevée du CPU est due à des interruptions ou à un certain processus. Utilisez ce script UNIX et, en fonction de ce que vous trouvez en premier, modifiez le script pour collecter les données nécessaires à une étude plus approfondie du problème.

Déterminer les causes et résoudre le problème

Utilisez la commande show processes cpu pour contrôler si l'utilisation du CPU est due aux interruptions ou aux processus.

Utilisation élevée du CPU en raison d'interruptions

Pour plus d'informations, référez-vous à Résolution des problèmes d'utilisation élevée du CPU provoquée par des interruptions. Si le niveau du CPU augmente en raison d'interruptions qui sont probablement dues à la commutation de paquets CEF, le niveau du CPU n'affecte pas le fonctionnement du routeur.

Utilisation élevée du CPU lors de l'activation de Netflow NDE sur les routeurs de la gamme Cisco 7600

Si NetFlow est configuré pour la version 7, le flux est exécuté par le processeur de routage, ce qui peut entraîner une utilisation élevée du processeur.

Pour résoudre le problème de l'utilisation CPU élevée due à NetFlow version 7, configurez l'expéditeur du noeud mls version 5, car l'exportation NetFlow est effectuée par le SP, qui est la valeur par défaut pour la version 5 ou la version 9.

Utilisation élevée du CPU due aux processus

Vérifiez quel processus charge le processeur. Activité inhabituelle liée à des résultats de processus dans un message d'erreur dans le log. Par conséquent, le résultat de la commande show logging exec  doit d'abord être vérifiée pour toutes les erreurs liées au processus qui consomme beaucoup de cycles CPU.

Vous pouvez utiliser les commandes debug pour dépanner l'utilisation élevée du CPU dans ces processus. Les commandes de débogage doivent être exécutées avec une extrême prudence, car elles peuvent augmenter encore plus l'utilisation du CPU. Ces conditions préalables doivent être remplies pour que les commandes debug puissent être utilisées en toute sécurité :

- Toutes les destinations de journalisation, à l'exception de la journalisation en mémoire tampon, doivent être désactivées ou leur niveau de gravité de journalisation doit être abaissé de 7 (débogage) à 6 (informatif) ou moins, en utilisant le  logging destination [ severity-level ]  configuration  erasecat4000_flash:. Pour savoir quelles destinations de journalisation et quels niveaux correspondants sont activés, lisez les lignes d'en-tête du show logging exec erasecat4000_flash:.

- La taille de la mémoire tampon de journalisation doit être augmentée afin de capturer suffisamment d'informations. Pour plus d'informations, reportez-vous à la description du  logging buffer global configuration  erasecat4000_flash:.

- Afin de pouvoir mieux lire et comprendre les débogages, les horodatages datetime et milliseconde doivent être activés. Pour plus d'informations, reportez-vous à la description du service timestamps global configuration  erasecat4000_flash:.

Un échantillon d'une session de débogage des paquets IP est fourni dans Résolution des problèmes d'utilisation élevée du CPU dans le processus d'entrée IP.

Pour dépanner une utilisation CPU élevée dans des processus spécifiques, référez-vous à :

- Entrée ARP : section Entrée ARP du document Dépannage de l'utilisation élevée du CPU due aux processus.

- Routeur BGP - Section « CPU élevé dû au processus du routeur BGP » du document « Dépannage du CPU élevé causé par le scanner BGP ou le processus du routeur BGP ».

- Scanneur BGP : section Dépannage du CPU élevé dû au scanner BGP du document Dépannage du CPU élevé causé par le scanner BGP ou le processus du routeur BGP.

- EXEC : utilisation CPU élevée dans les processus EXEC et EXEC virtuel.

- HyBridge Input : dépannage de l'utilisation élevée du processeur due au processus d'entrée HyBridge sur les routeurs dotés d'interfaces ATM.

- IP Input : dépannage de l'utilisation élevée du CPU en raison du processus d'entrée IP.

- Protocole SNMP (IP Simple Network Management Protocol) : le protocole SNMP (IP Simple Network Management Protocol) entraîne une utilisation élevée du processeur.

- LC ADJ Updater - Quelle est la cause d'une utilisation élevée du CPU dans le processus LC Adjacency Updater des routeurs Internet de la gamme Cisco 12000 ?

- TCP Timer : section TCP Timer du document Dépannage d'une utilisation CPU élevée due aux processus.

- TTY Background : section TTY Background du document Dépannage de l'utilisation élevée du CPU due aux processus.

- EXEC virtuel : voir le lien pour l'EXEC. Utilisation du CPU élevée dans les processus Exec et Virtual Exec.

- Vtemplate Backgr - Section Virtual Template Background du document Dépannage de l'utilisation élevée de l'UC due aux processus.

- Processus SSH : peut être élevé s'il capture un show tech ou un débogage est activé.

- Autres processus : section Autres processus du document, Dépannage de l'utilisation élevée du CPU due aux processus.

Les pools PCI et Mémoire rapide montrent des taux d'utilisation très élevés

Il est normal de voir peu de mémoire libre avec les pools PCI et Mémoire rapide. La mémoire PCI est utilisée pour l'accès mémoire au contrôleur GT64260 de la carte principale PRP pour les bus PCI qui y sont connectés. Cette mémoire est utilisée pour la communication interne entre le contrôleur système et les autres composants, c'est pourquoi elle semble élevée en permanence.

Si plus de mémoire est nécessaire, elle retombe au pool de mémoire du processeur. La mémoire rapide est un petit ensemble de mémoire qui a été mis de côté pour être utilisé par les structures de données du matériel Interface Descriptor Block (IDB). Cette mémoire est également complètement réservée au cours du démarrage, c'est pourquoi elle s'affiche toujours comme élevée puisque la mémoire est complètement utilisée. Pour cette raison, il est normal de voir peu mémoire libre avec le pool de mémoire rapide.

%SNMP-4-HIGHCPU : le processus dépasse le seuil [dec]ms ([dec]ms quantum IOS) pour [chars] de [chars]—résultat [chars]

Le message de monopolisation CPU ressemble à ceci :

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

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

Un nouveau message syslog (HIGHCPU) a été ajouté à Cisco IOS dans la version 12.4(13). Si un processus sollicite le CPU pour plus de 200 ms, il enregistre un message HIGHCPU. Le message HIGHCPU n'a aucune incidence sur le routeur. Il vous fait juste savoir quel processus a entraîné l'utilisation élevée du CPU. Le message HIGHCPU est semblable au message CPUHOG, mais le message HIGHCPU a un seuil de tolérance, à 1/10 du temps comparé à un message CPUHOG, c.-à-d., mesuré en millisecondes). Dans les versions antérieures à la version 12.4(13) sur le 2600, les processus s'exécutaient plus longtemps, mais ne généraient pas de messages, car les versions de Cisco IOS ne comportaient pas cette amélioration.

SNMP PDU processing (MIB object queries) sont censées être exécutées dans une seule tranche de temps de CPU pour s'assurer que chaque objet dans le PDU est récupéré simultanément. C'est une condition imposée par la norme du protocole SNMP. Certains objets sont des agrégats de beaucoup de données dans le système, ainsi, même s'ils sont des objets simples, il y a beaucoup de traitement impliqué en raison de la manière dont ils sont utilisés. S'ils n'abandonnent pas le CPU, selon les exigences des règles d'instrumentation MIB, il y a une possibilité de ce message d'erreur. De même, si vous interrogez plusieurs objets différents dans le groupe/table du même objet et obtenez le message d'erreur, ce n'est pas inhabituel pour cette même raison.

Ce message est utilisé pour identifier les objets qui utilisent plus de temps d’UCT que prévu (mais qui ne sont pas encore CPUHOG). Certains NMS/ outils d'instrumentation ne se comportent pas bien lorsqu'ils sont interrogés. Ce problème est documenté dans l'ID de bogue Cisco CSCsl18139.

Remarque : seuls les utilisateurs Cisco enregistrés ont accès aux outils internes et aux informations de bogue.

Utilisation élevée du CPU en raison du chiffrement logiciel

Lorsqu'aucun module de cryptage matériel n'est installé sur le périphérique, tout le trafic crypté transitant par le périphérique doit être crypté par le logiciel. Ceci sollicite énormément le CPU. Il n'est pas recommandé d'utiliser le cryptage logiciel pour tout déploiement de cryptage nécessitant un débit raisonnable. Une manière de résoudre ce problème est de réduire le volume du trafic chiffré (re-router le trafic ou limiter les flux chiffrés). Cependant, la meilleure manière de régler ce problème est d'avoir un module de chiffrement matériel installé pour ce périphérique qui élimine le besoin de chiffrement par le logiciel.

Remarque : si vous activez les crypto-cartes sur les interfaces tunnel/physiques, cela entraîne le processus de consommation de mémoire et peut entraîner une augmentation du CPU.

Utilisation élevée de l’UCT causée par la fragmentation

Les rassemblements peuvent faire grandement augmenter l’utilisation de l’UCT si celui-ci doit rassembler un grand nombre de paquets.

Pour dépanner l'utilisation élevée du CPU due à la fragmentation, émettez la commande tcp mss-adjust 1400 sur l'interface qui définit la valeur de taille de segment maximale (MSS) des paquets TCP synchronize/start (SYN) qui passent par un routeur.

Commandes pour obtenir plus d'informations

Ces commandes fournissent plus d'informations au sujet du problème :

- show processes cpu

- show interfaces

- show interfaces switching

- show interfaces stat

- show ip nat translations

- show align

- show version

- show log

Pour plus de détails sur les commandes show, reportez-vous au manuel Cisco IOS Configuration Fundamentals Command Reference.

Si le routeur est complètement inaccessible, commencez par l'éteindre et le rallumer. Ensuite, collectez périodiquement le résultat des commandes de cette section, à l'exception de  show log  , dont les messages doivent être consignés sur un serveur syslog. L'intervalle de collecte du résultat doit être de cinq minutes. Vous pouvez collecter les données manuellement ou automatiquement, avec ce script shell UNIX . Vous pouvez également collecter des données via HTTP ou SNMP.

Les show processes cpu  Commande

Voici un exemple de l'en-tête de la show processes cpu  erasecat4000_flash:.

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

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

Cette table décrit les champs dans l'en-tête :

Champ

Description

X

Utilisation moyenne totale pendant les cinq dernières secondes (interruptions + processus)

O

Moyenne de l’utilisation causée par des interruptions au cours des cinq dernières secondes^1

Z

Moyenne de l’utilisation totale au cours de la dernière minute^2

W

Moyenne de l’utilisation totale au cours des cinq dernières minutes^2

PID

ID du processus

Runtime

Temps du CPU que le processus a utilisé (en millisecondes)

Invoked

Nombre de fois qu'un processus a été appelé

uSecs

Microsecondes du temps CPU pour chaque appel

5Sec

Utilisation du CPU par tâche pour les cinq dernières secondes

1Min

Utilisation de l’UCT par tâche au cours de la dernière minute^2

5Min

Utilisation de l’UCT par tâche au cours des cinq dernières minutes^2

TTY

Terminal qui contrôle le processus

Process

Nom du processus

1 Utilisation de l’UCT au niveau du processus = X - Y

2 Les valeurs ne représentent pas une moyenne arithmétique, mais une moyenne à décroissance exponentielle. Ainsi, les valeurs les plus récentes ont plus d'influence sur la moyenne calculée.

Pour plus d'informations, reportez-vous au guide de référence des commandes show.

Remarque : l'utilisation totale du CPU ne doit pas être utilisée comme mesure de la capacité du routeur à commuter davantage de paquets. Sur les routeurs Cisco 7500, les Versatile Interface Processors (VIPs) et les Route/Switch Processors (RSPs) n'enregistrent pas l'utilisation linéaire du CPU. Près de la moitié de la puissance de commutation de paquets par seconde intervient après 90 à 95 pourcents du CPU.

Les show interfaces Commande

Cette commande permet de déterminer les interfaces actives.

Les show interfaces switching  Commande

Cette commande permet de déterminer les chemins de commutation actifs sur les interfaces.

Ceci est un exemple de sortie du  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

Le résultat répertorie les chemins de commutation pour tous les protocoles configurés sur l'interface, afin que vous puissiez facilement voir quel type et quelle quantité de trafic passe par le routeur. Ce tableau 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 - dépend du type de commutation rapide configuré) est traité. Tous les paquets suivants sont commutés rapidement, sauf si la commutation rapide est 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, de 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).

Les  show interfaces stat  Commande

Cette commande est une version résumée du show interfaces switching  erasecat4000_flash:. Ceci est un exemple de résultat pour une interface :

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

Le résultat de la commande  show interfaces stat  est différente selon les plates-formes et dépend des chemins de commutation disponibles et configurés.

Les  show ip nat translations  Commande

Les show ip nat translations  affiche les traductions NAT (Network Address Translation) actives sur le routeur. Chaque traduction active génère des interruptions du CPU et a une incidence sur l'utilisation totale du CPU du routeur. Un trop grand nombre de traductions peut avoir un impact sur les performances du routeur.

Ceci est un exemple de résultat de la commande  show ip nat translations  commande :

router#show ip nat translations

Pro Inside global    Inside local    Outside local    Outside global

--- 172.16.131.1     10.10.10.1      ---              ---

Les  show align  Commande

Cette commande n'est disponible que sur les plates-formes basées sur les processeurs d'ordinateur à jeu d'instructions réduit (RISC). Sur ces plates-formes, le processeur peut corriger les lectures ou écritures de mémoire qui ne s'alignent pas. Voici un exemple de sortie:

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

Les  show version  Commande

Pour suivre les problèmes d'utilisation élevée du CPU, les informations importantes à prendre du résultat de la commande sont la version du logiciel Cisco IOS, la plate-forme, le type de CPU et le temps de disponibilité du routeur. La référence de commande fournit une explication détaillée de cette commande.

Les  show log  Commande

Cette commande affiche le contenu des messages de journal en mémoire tampon.

Scripts EEM pour la collecte automatique de données dans des conditions CPU élevées

Embedded Event Manager peut être utilisé pour collecter automatiquement des données lorsqu'une condition de CPU élevée se produit.  EEM est déclenché en surveillant l'OID SNMP pour l'utilisation du processus ou en surveillant les messages syslog pour le résultat de la commande CPU threshold. Diverses commandes show peuvent être exécutées via le script EEM et le résultat peut être enregistré dans le système de fichiers.

Exemple de script EEM avec l'OID SNMP

Ce script est exécuté lorsque l'utilisation du processus augmente d'environ 85 %.

Pour plus d'informations, consultez Comment collecter l'utilisation du CPU sur les périphériques Cisco IOS à l'aide de 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

Exemple de script EEM avec les messages de notification de seuil de CPU

Une combinaison de EEM et de la commande CPU threshold notifications peut déclencher le script EEM. Dans cet exemple, un message syslog CPURISHINGTHRESHOLD est généré lorsque l'utilisation augmente de plus de 85 % pendant un intervalle de 5 secondes.  Le script EEM peut déclencher le message syslog et exécuter une liste de commandes qui sont enregistrées dans un fichier du système de fichiers.

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

Exemple de script EEM pour démarrer/arrêter le profil du processeur

EEM est utilisé pour démarrer/arrêter le profilage du processeur ainsi que pour consigner les données de diverses commandes show. Voir Dépannage d'une utilisation CPU élevée due à des interruptions pour plus d'informations.

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"

Script shell UNIX pour la collecte périodique de données

Cette annexe décrit un script simple qui capture régulièrement les données du routeur. Le noyau du script est cette ligne :

(echo "show version") | telnet 192.168.1.1

La commande entre parenthèses est exécutée dans une nouvelle fenêtre de ligne de commande et la sortie est envoyée à une session Telnet. Il s'agit d'un exemple de script pour capturer le résultat de  show version  et  show processes cpu  commandes :

#!/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

Remarque : dans ce script, toutes les données, y compris le mot de passe, sont envoyées en texte clair.

Dans la première section, vous devez spécifier l'adresse IP et le répertorier de destination pour les fichiers de journalisation. La deuxième section contient les commandes réelles qui sont envoyées au routeur. Le premier est le nom d'utilisateur, puis le mot de passe, et ainsi de suite. Pour capturer uniquement les premières lignes de sortie de certaines commandes est inclus. La longueur du terminal est paramétrée comme quelque chose de court (15 dans ce cas), et la lettre « q » est envoyée seulement par demande.

Si des données sont collectées périodiquement, la sortie de  show version  indique si le problème est de nature périodique, par exemple, s'il apparaît toujours à une certaine heure de la journée ou un jour particulier de la semaine. Si vous devez rassembler la sortie de plus de commandes, elles peuvent être ajoutées au script de la même manière que celles montrées dans l'exemple. Si vous devez tronquer la sortie envoyée vers le fichier, augmentez d'abord la période de veille (la commande Sleep entre parenthèses).

Exécutez ce script toutes les cinq minutes si le problème d'utilisation élevée du CPU apparaît souvent et ne dure pas longtemps. Autrement, vous pouvez l'exécuter toutes les 15 ou 30 minutes. Pour une facilité d'utilisation, sauvegardez le script dans un fichier tel que /usr/bin/router-script. Ensuite, pour l'exécuter toutes les cinq minutes, ajoutez la ligne suivante au fichier /etc/crontab :

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

Relancez le serveur cron. Si vous n'avez pas les droits pour modifier le fichier /etc/crontab, exécutez le script dans un processus distinct, comme ceci :

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

Informations connexes

- Utilisation élevée du processeur sur les commutateurs Catalyst 2900XL/3500XL

- Notions de base de l'optimisation des performances

- Assistance technique et téléchargements Cisco