Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Conventions

Utilisation élevée du CPU causée par le processus SNMP ENGINE

Tables de routage et/ou ARP étendues interrogées par la station NMS

Interrogation de certaines MIB

Informations connexes

Discussions connexes de la communauté d’assistance Cisco

Introduction

Ce document explique comment dépanner la surutilisation de la CPU dans un routeur, due au processus de MOTEUR SNMP exécuté dans le routeur, particulièrement dans le cas de routeurs bas de gamme.

Conditions préalables

Conditions requises

Les lecteurs de ce document devraient avoir connaissance des sujets suivants :

- SNMP

- Cisco IOS

Components Used

Les informations de ce document sont basées sur les routeurs exécutant le logiciel Cisco IOS®.

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.

Utilisation élevée du CPU causée par le processus SNMP ENGINE

Parfois, des messages comme celui-ci peuvent apparaître dans la console du routeur :

%SNMP-3-CPUHOG: Processing [chars] of [chars]

Ils signifient que l'agent SNMP sur le périphérique a mis trop de temps à traiter une requête.

Vous pouvez déterminer la cause de l'utilisation élevée du CPU dans un routeur en utilisant le résultat de la commande show process cpu.

L'exemple suivant montre le résultat de la commande show process cpu.

cacuk#show process cpu

CPU utilization for five seconds: 0%/0%;

one minute: 0%;

five minutes: 0%

PID

Exécution(ms)

Invoked

uSecs

5Sec

1Min

5Min

TTY

Process

1

68

258816

0

0.00%

0.00%

0.00%

0

Load Meter

2

0

1

0

0.00%

0.00%

0.00%

0

OSPF Hello

3

788132

131480

5994

0.00%

0.00%

0.00%

0

Check heaps

4

0

1

0

0.00%

0.00%

0.00%

0

Gestionnaire de blocs

5

56

131

427

0.00%

0.00%

0.00%

0

Pool Manager

69

202700

421730

480

0.00%

0.01%

0.00%

0

SNMP IP

71

1193648

211250

5650

0.00%

0.19%

0.15%

0

MOTEUR SNMP

La commande debug snmp vérifie quels ID d'objet (OID) ou MIB (Management Information Base) sont interrogés à ce moment.

Remarque : l'exécution d'un débogage sur un réseau de production peut submerger le routeur.

Il existe deux causes probables d'utilisation élevée du CPU par rapport au protocole SNMP (Simple Network Management Protocol) :

1. Tables de route et/ou ARP volumineuses interrogées par la station NMS

2. Interrogation de certaines MIB

Tables de routage et/ou ARP étendues interrogées par la station NMS

La station d’administration de réseau interroge les routeurs sur l’ensemble de leur table de routage pour en savoir plus sur les autres réseaux. Il utilise ces informations pour rechercher d’autres routeurs et les interroger sur leurs connaissances des réseaux qui les entourent. De cette manière, la station de gestion peut apprendre la topologie de l’ensemble du réseau.

Le routeur stocke la table de routage dans un format haché, ce qui facilite les recherches de route rapides. Cependant, les réponses SNMP pour la route doivent être retournées dans l'ordre lexicographique conformément à la RFC1213. Par conséquent, pour chaque requête SNMP reçue par le routeur, la table de hachage doit être triée lexicographiquement avant qu'une unité de données de protocole de réponse SNMP puisse être créée. Plus la table de routage est grande, plus le CPU interagit avec le tri.

Le protocole SNMP est un processus de faible priorité en ce qui concerne le planificateur de CPU, de sorte qu'un autre processus nécessitant des ressources de CPU est prioritaire. Par conséquent, même si des pics de CPU se produisent dans ce scénario, ils ne doivent pas affecter les performances.

Recommandation 1 : Utiliser les commandes snmp-server view

Pour éviter les problèmes de performances, forcez le routeur à mettre fin prématurément aux requêtes pour la table de routage à partir du serveur du système de gestion du réseau. Configurez le routeur pour qu’il réponde avec un message complet dès qu’il reçoit le début d’une demande pour la table de routage, comme suit :

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown 1.3.6.1.2.1.3 excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.

Cette configuration bloque les requêtes de récupération de la table de routage (ipRouteTable) et de la table ARP (Address Resolution Protocol) (ipNetToMediaTable), mais autorise toutes les autres requêtes à passer par. Si vous disposez d'une version antérieure du logiciel Cisco IOS®, il ne reconnaîtra pas l'objet MIB ipRouteTable, utilisez donc la configuration suivante :

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown at excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.

Dans ces deux exemples, vous pouvez remplacer vos propres chaînes de communauté.

Le résultat de ces configurations est que le routeur ne retourne plus la table ARP ou la table de routage IP lorsqu’il est interrogé. Cela empêche les découvertes de réseau SNMP de créer des pics de CPU sur le routeur en question, mais supprime également un certain degré de facilité de gestion du routeur.

Les routeurs qui n’avaient pas de pointes de CPU auparavant peuvent commencer à le faire en cas de modification de leur table de routage. Le nombre de cycles requis pour répondre aux requêtes de la table de routage IP dépend du nombre de routes dans la table de routage. Si le nombre de routes augmente, l'utilisation du CPU augmente également.

Recommandation 2 : Activer CEF

Une modification a été apportée au code Cisco IOS pour permettre à SNMP d'interroger la table CEF (Cisco Express Forwarding) pour connaître les entrées de routage si la commutation CEF est utilisée. Cela améliore considérablement la situation. Lorsque CEF est activé, l'agent SNMP répond à une opération get-next/get-vrac pour les tables de routage ou ARP avec les informations de la base d'informations de transfert (FIB). La FIB est stockée dans l'ordre lexicographique et aucun tri n'est nécessaire. Sans CEF activé, l'agent SNMP répond avec des informations provenant de la base d'informations de routage (RIB), qui doivent être triées dans l'ordre lexicographique causant un CPU élevé.

Suivez le lien d'ID de bogue ci-dessous et voyez les informations détaillées sur le bogue.

CSCdk54265 (clients enregistrés uniquement) : le HOG CPU est généré lors de l'interrogation de la table de routage via SNMP à partir de la station de gestion de réseau.

Interrogation de certaines MIB

Les applications de gestion de réseau récupèrent fréquemment des informations des périphériques utilisant SNMP. Par exemple, Resource Manager Essentials (RME), une application de la gamme de produits CiscoWorks 2000. RME peut récupérer les informations flash définies dans la MIB CISCO-FLASH. Si le périphérique dispose d'un disque flash ATA, il peut faire sauter l'utilisation du processeur.

Suivez le lien d'ID de bogue ci-dessous et voyez les informations détaillées sur le bogue.

CSCdt97325 (clients enregistrés uniquement)

Pour vérifier et appliquer la solution de contournement, procédez comme suit :

1. Vérifiez si le périphérique possède une carte Flash ATA dans l'un de ses logements :

Router#show disk1:

******** ATA Flash Card Geometry/Format Info ********

ATA CARD GEOMETRY

Number of Heads:        12

Number of Cylinders     906

Sectors per Cylinder    63

Sector Size             512

Total Sectors           684936

ATA CARD FORMAT

Number of FAT Sectors  84

Sectors Per Cluster    32

Number of Clusters     21372

Number of Data Sectors 684117

Base Root Sector       169

Base FAT Sector        1

Base Data Sector       201

Router#

Si vous n'êtes pas sûr ou si vous n'obtenez pas de sortie pour la commande show diskX, exécutez la commande show tech et recherchez le disque.

2. Une fois que vous avez un disque Flash ATA, vous pouvez appliquer la solution de contournement suivante pour empêcher les requêtes SNMP sur la base de données FLASH-MIB :

Router(config)#snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

Router(config)#snmp-server view

ciscoFlashMIB excluded

!--- The additional object snmpUsmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.15 excluded

!--- The additional object snmpVacmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.16 excluded

!--- The additional object snmpCommunityMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.18 excluded

Router(config)#snmp-server community

view

ro

Router(config)#snmp-server community

view

rw

Router(config)#exit

Router#

Remarque : Choisissez le même mot sur chaque ligne pour <any_word> dans la configuration ci-dessus.

Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.

3. Vérifiez qu'elle est correctement implémentée :

Router#show run

...

snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view

ciscoFlashMIB excluded snmp-server view

internet.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view

internet.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view

internet.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community

view

RW snmp-server community

view

RO

Remarque : <any_word>, <write_community_string> et <read_community_string> sont ceux qui sont dans la configuration.

Attention : Dans l'exemple ci-dessus, snmpUsmMIB est exclu, snmpVacmMIB est exclu et snmpCommunityMIB est exclu. Ensemble, ces objets peuvent être utilisés pour obtenir des informations sur les utilisateurs configurés et les chaînes de communauté afin d'obtenir un accès administratif au périphérique. Il est recommandé d'exclure ces objets de la vue sur tout périphérique accessible aux utilisateurs publics.

4. Émettez la commande show proc cpu pour vérifier si le CPU-Util pour SNMP tombe en panne et rechercher le processus IP_SNMP.

Note : Le bogue CSCdt97325 a également été corrigé dans certaines versions ultérieures de Cisco IOS, donc vérifiez le bogue pour plus de détails.

Autres bogues liés aux MIB d'interrogation :

Suivez les liens d'ID de bogue Cisco ci-dessous et consultez les informations détaillées sur le bogue.

- CSCdm67427 (clients enregistrés uniquement) : l'interrogation de la sous-interface ATM renvoie le message HOG CPU du périphérique.

- CSCdu63734 (clients enregistrés uniquement) - Flash MIB passe trop d'appels à if.

- CSCdu48652 (clients enregistrés uniquement) - La requête MIB Flash bloque les appels vocaux sur 7200.

- CSCds53368 (clients enregistrés uniquement) - Problèmes avec l'objet ciscoFlashPartitionEntry dans CISCO-FLASH-MIB.

- CSCdu55091 (clients enregistrés uniquement) - 2500 snmpgetnext pour certains objets SNMP provoque le retour de trace.

- CSCdx54836 (clients enregistrés uniquement) : l'interrogation SNMP sur la base MIB Flash entraîne une utilisation élevée du processeur sur le commutateur.

Informations connexes

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

- Support et documentation techniques - Cisco Systems