Ce document explique les différentes options que vous pouvez utiliser pour activer les core dumps dans le logiciel Cisco IOS®.
Remarque : les vidages de base peuvent être difficiles à obtenir. Seul le personnel technique de Cisco ayant accès au code source et aux cartes mémoire détaillées doit tenter d'interpréter les vidages de mémoire centrale. Sur de nombreuses plates-formes, l'utilisation de la fonction crashinfo peut rendre les core dumps inutiles. Référez-vous à Récupération d'informations à partir du fichier Crashinfo pour plus d'informations.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
Logiciel Cisco IOS versions 12.0 et ultérieures
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.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Lorsqu’un routeur tombe en panne, n’oubliez pas d’obtenir une copie de l’intégralité du contenu de la mémoire du routeur, appelée vidage de mémoire. Votre représentant du support technique utilise le vidage du coeur de réseau pour identifier la cause de la panne. Le routeur écrit le contenu de la mémoire sur le serveur avant un rechargement. Tous les pannes ne produisent pas de vidage de mémoire. Pour plus de détails, référez-vous à Types de crash.
Capturez toujours les journaux de la console lorsque le routeur tente de vider un coeur. Les journaux de la console fournissent des informations sur la panne. En outre, le moniteur ROM (ROMMON) imprime normalement les informations sur la console (et uniquement sur la console) au moment de la panne.
Attention : les vidages de coeur ne sont pas nécessaires pour résoudre la plupart des cas de crash. La création d’un vidage de mémoire pendant que le routeur fonctionne sur un réseau peut perturber le fonctionnement du réseau. Utilisez les commandes de ce document uniquement sous la direction d'un représentant du support technique.
Il existe quatre méthodes de base pour configurer le routeur afin de générer un vidage de mémoire :
Via FTP (File Transfer Protocol)
Via le protocole RCP (Remote Copy Protocol)
Via un disque flash
Via TFTP (Trivial File Transfer Protocol)
Chacune de ces méthodes utilise les commandes de configuration suivantes :
exception region-size size
Cette commande spécifie la taille de la région pour le pool de mémoire d'exception-time. Le pool de mémoire d'exception est utilisé au cas où la mémoire du processus serait endommagée. Le paramètre size est exprimé en octets et vous pouvez configurer la taille de 1024 à 65536 octets.
exception core-file filename [compress]
Cette commande spécifie un nom différent du nom par défaut pour le fichier de vidage de mémoire. Afin de revenir au nom par défaut, utilisez la forme no de cette commande.
Pour plus d'informations sur les commandes dans ce document, référez-vous à l'outil de référence des commandes (clients enregistrés uniquement) .
Utilisez la commande exception region-size pour définir une petite quantité de mémoire servant de pool de secours lorsque le pool de mémoire du processeur est endommagé. Cela permet d'éviter les pannes de mémoire pendant le processus de vidage du coeur. Le paramètre size est exprimé en octets et vous pouvez configurer la taille de 1024 à 65536 octets, avec une valeur par défaut de 16384 octets. Configurez la taille de région d'exception sur 65536 octets pour augmenter les chances d'un vidage de coeur réussi.
Par défaut, le vidage du coeur de la mémoire du processeur est écrit dans un fichier nommé « hostname-core », où hostname est le nom du routeur, que la commande de configuration hostname définit. Si le routeur dispose d'une mémoire d'entrée/sortie (E/S) (par exemple, le Cisco 7200), il est également possible de créer un vidage de mémoire E/S, écrit dans le fichier « hostname-coreiomem ».
Utilisez la commande exception core-file pour remplacer le nom de fichier de vidage de mémoire par défaut. Si le serveur de fichiers dispose d'un système de fichiers DOS FAT, ne spécifiez pas de nom de fichier de plus de six caractères. Par exemple, si vous configurez un routeur avec "exception core-file foobar", le nom de mémoire du processeur du core dump est "foobar" et le nom du core dump d'E/S est "foobario" (assez pour vous donner un indice que vous avez un dump de mémoire d'E/S).
Assurez-vous que l'espace disque sur le serveur de fichiers est suffisant pour contenir plusieurs vidages de mémoire complets. Vous pouvez compresser les fichiers de vidage de mémoire avec l'option compress.
Remarque : la compression s'applique automatiquement lorsque vous écrivez des fichiers de vidage de mémoire sur le disque Flash. Si vous utilisez RCP, l'option compress n'est pas prise en charge.
Remarque : le protocole FTP (File Transfer Protocol) est la méthode recommandée pour configurer un vidage de mémoire.
Afin d'utiliser FTP pour configurer le routeur pour un core dump, utilisez ces commandes :
ip ftp username username - Cette commande configure le nom d'utilisateur pour les connexions FTP (File Transfer Protocol). Afin de configurer le routeur pour tenter le FTP anonyme, utilisez la forme no de cette commande.
ip ftp password password : cette commande configure le mot de passe pour la connexion FTP.
exception protocol ftp : cette commande configure le protocole utilisé pour le vidage de mémoire FTP.
exception region-size 65536 : cette commande configure la taille de la région.
exception dump ip-address - Cette commande configure l'adresse ip du serveur auquel le routeur envoie le core dump en cas de panne.
Remarque : afin d'éviter l'encombrement du réseau, Cisco vous recommande vivement de connecter le routeur directement au serveur FTP, sans sauts intermédiaires. Si vous devez passer par un ou plusieurs sauts intermédiaires, vous devrez peut-être utiliser la commande ip ftp source-interface pour spécifier l'interface à utiliser afin d'accéder au serveur FTP. Référez-vous à Configuration d'un routeur pour utiliser des connexions FTP pour plus d'informations.
Si vous n'avez pas configuré le nom d'utilisateur et le mot de passe, le routeur tente le FTP anonyme.
Lorsqu'un représentant du support technique Cisco vous demande des fichiers de vidage de mémoire, vous pouvez les envoyer à Cisco via FTP anonyme. Le serveur FTP est ftp-sj.cisco.com et le répertoire est /incoming.
Remarque : le répertoire /incoming est invisible.
Veillez à définir le mode de transfert sur binaire. Si les fichiers ne sont pas déjà compressés, compressez-les à l'aide d'un utilitaire de compression courant, par exemple gzip ou zip.
Assurez-vous également d'inclure le fichier crashinfo, si disponible, avec le core dump. Le fichier crashinfo est disponible si le matériel ou le logiciel prend en charge cette fonctionnalité. Référez-vous à Récupération d'informations à partir du fichier Crashinfo pour les instructions sur la façon de faire cela.
Assurez-vous que le protocole FTP fonctionne en premier. Utilisez cet exemple :
c7500#copy running-config ftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
Afin d'utiliser RCP pour configurer le routeur pour un core dump, utilisez ces commandes :
ip rcmd remote-username username - Cette commande configure le nom d'utilisateur distant pour une utilisation lorsque vous demandez une copie distante via le protocole de copie distante (RCP).
exception protocol rcp : cette commande configure le protocole utilisé pour les vidages de coeur en tant que protocole RCP.
exception region-size 65536 : cette commande configure la taille de la région.
exception dump ip-address
Si vous n'avez pas configuré le nom d'utilisateur, le routeur utilise son nom d'hôte comme nom d'utilisateur pour RCP.
Remarque : afin d'éviter l'encombrement du réseau, Cisco vous recommande vivement de connecter le routeur directement au serveur RCP, sans sauts intermédiaires. Si vous devez passer par un ou plusieurs sauts intermédiaires, utilisez la commande ip rcmd source-interface pour spécifier l'interface à utiliser afin d'accéder au serveur RCP. Référez-vous à Configuration d'un routeur pour utiliser rsh et rcp pour plus d'informations.
Assurez-vous que le protocole RCP fonctionne en premier. Utilisez cet exemple :
c7500#copy running-config rcp: Address or name of remote host []? 172.18.125.3 Destination username [c7500]? Destination filename [c7500-confg]? Writing c7500-confg ! 2781 bytes copied in 0.944 secs
Certaines plates-formes de routeur prennent en charge le disque Flash comme alternative à la mémoire flash linéaire ou à la carte Flash PCMCIA. La grande capacité de stockage de ces disques Flash en fait un bon support pour capturer un vidage de mémoire. Pour obtenir des informations sur les plates-formes de routeur et les versions du logiciel Cisco IOS qui prennent en charge le disque Flash, reportez-vous aux Notes de version de Cisco IOS .
Remarque : lorsque vous capturez un core dump dans un disque Flash, vous devez vous assurer que le disque Flash a plus de taille de stockage que la mémoire DRAM qui provoque le core dump. Par exemple, si la taille de la mémoire DRAM est de 128 Mo, le disque Flash doit avoir une capacité de stockage supérieure à 128 Mo. Une mémoire de disque flash plus importante est nécessaire pour obtenir le vidage du coeur correctement. Si le disque Flash manque de mémoire, le vidage du coeur n'est pas créé.
Afin d'utiliser un disque Flash pour configurer un routeur pour un core dump, utilisez cette commande :
exception flash procmem|iomem|all device_name [:partition_number] !--- This command uses a Flash disk to configure the router for a core dump.
La commande EXEC show flash all répertorie les périphériques que vous pouvez utiliser pour la commande exception flash.
En raison d'une limitation de la plupart des applications TFTP, le routeur ne vide que les 16 premiers Mo du fichier principal. Par conséquent, si la mémoire principale de votre routeur est supérieure à 16 Mo, n'utilisez pas TFTP. Référez-vous à Client TFTP Cisco IOS ne peut pas transférer des fichiers de taille supérieure à 16 Mo pour plus d'informations.
Afin d'utiliser TFTP pour configurer un routeur pour un core dump, utilisez ces commandes :
exception protocol tftp : cette commande configure TFTP comme protocole pour les vidages de coeur de réseau.
exception region-size 65536
exception dump ip-address
TFTP est le protocole par défaut pour le protocole d'exception.
Remarque : afin d'éviter l'encombrement du réseau, Cisco vous recommande vivement de connecter le routeur directement au serveur TFTP, sans sauts intermédiaires. Si vous devez passer par un ou plusieurs sauts intermédiaires, utilisez la commande ip tftp source-interface pour spécifier l'interface à utiliser afin d'accéder au serveur TFTP.
En fonction du serveur TFTP utilisé, vous devrez peut-être créer des fichiers cibles vides avec les autorisations appropriées avant que le routeur puisse y écrire.
Assurez-vous que le protocole TFTP fonctionne en premier. Utilisez cet exemple :
c7500#copy running-config tftp: Address or name of remote host []? 172.18.125.3 Destination filename [c7500-confg]? ! 2781 bytes copied in 0.944 secs
Utilisez les commandes de configuration de cette section en plus des commandes de la section Configuration de base.
Afin de déboguer certains problèmes de mémoire, vous pouvez faire en sorte que le routeur crée un core dump et redémarre en cas de violation de certains paramètres de taille de mémoire. Utilisez ces commandes exception memory afin de déclencher un core dump :
exception memory minimum size : cette commande force une panne si la quantité de mémoire libre du processeur diminue en dessous du seuil configuré.
exception memory fragment size - Cette commande force une panne si le logiciel Cisco IOS ne peut pas allouer un bloc mémoire de processeur contigu supérieur au seuil configuré.
Le paramètre size est exprimé en octets et est vérifié toutes les 60 secondes par défaut.
Ces commandes ne provoquent le redémarrage du routeur que lorsque les conditions configurées sont remplies. Si vous configurez également le vidage des exceptions ou la mémoire flash des exceptions, le routeur crée d'abord un vidage de coeur. Ces commandes permettent de diagnostiquer les fuites de mémoire.
Dans certains cas, le représentant du support technique vous demande d'activer la santé du débogage lorsque vous configurez le vidage du coeur de réseau. La commande debug sanity est une commande masquée dans la plupart des versions du logiciel Cisco IOS, et est parfois nécessaire pour déboguer la corruption de la mémoire, en particulier la corruption de la mémoire d'E/S. Lorsque vous activez debug sanity, le système exécute un contrôle de santé sur chaque tampon qui est alloué, et exécute à nouveau un contrôle de santé quand le tampon est libéré.
Vous devez émettre la commande debug sanity en mode d'exécution privilégié (ou en mode enable). Bien que cette commande utilise une certaine capacité de CPU, debug sanity n'affecte pas significativement la fonctionnalité du routeur. Comme d'autres commandes debug, debug sanity n'est pas enregistré dans la configuration et ne survit donc pas à un redémarrage du système.
Tous les types de plantages ne nécessitent pas que vous activiez debug sanity. Utilisez debug sanity uniquement lorsque votre représentant du support technique vous demande d'activer cette commande.
Afin de désactiver les contrôles de santé, utilisez la commande d'exécution privilégiée undebug sanity.
Une fois que vous avez configuré le routeur pour le vidage du coeur, testez la configuration.
La plate-forme logicielle Cisco IOS fournit la commande spéciale write core en mode d’exécution privilégié (ou en mode enable) pour que le routeur génère un vidage de coeur sans rechargement.
En cas de succès, le ou les fichiers de vidage de mémoire sont de la taille des régions de mémoire respectives. N'oubliez pas que toute la zone mémoire est vidée, pas seulement la mémoire utilisée.
La commande write core est également utile dans le cas d'un routeur qui fonctionne mal, mais n'a pas planté.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
24-Jun-2008 |
Première publication |