Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Síntomas de la alta utilización de la CPU

Resolución de problemasUso elevado de CPU

Determine las causas y resuelva el problema

Gran utilización de la CPU debido a interrupciones

Uso elevado de la CPU al habilitar Netflow NDE en routers Cisco de la serie 7600

Alta utilización del CPU a causa de los procesos

Pools de memoria PCI y FAST que indican un uso muy elevado

%SNMP-4-HIGHCPU: el proceso supera el umbral [dec]ms ([dec]ms IOS quantum) para [chars] de [chars]—result [chars]

Uso elevado de la CPU debido a cifrado de software

Uso elevado de la CPU debido a fragmentación

Comandos para obtener más información

El comando show processes cpu

El comando show interfaces

El comando show interfaces switching

El comando show interfaces stat

El comando show ip nat translations

El comando show align

El comando show version

El comando show log

Scripts EEM para la recopilación automática de datos en condiciones de CPU altas

Ejemplo de secuencia de comandos EEM con OID SNMP

Ejemplo de secuencia de comandos EEM con mensajes de notificación de umbral de CPU

Ejemplo de secuencia de comandos EEM para iniciar/detener el perfil de CPU

Script de shell UNIX para la recopilación periódica de datos

Información Relacionada

Introducción

Este documento describe los síntomas comunes y las causas del uso excesivo de la CPU en los routers Cisco y proporciona pautas y soluciones para problemas comunes.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Routers de Cisco

- Rutas de switching del software Cisco IOS®

Para obtener información sobre las rutas de switching del software Cisco IOS, consulte Aspectos básicos de ajustes del rendimiento.

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Síntomas de la alta utilización de la CPU

Esta lista describe algunos síntomas comunes derivados del extensivo uso de la CPU. Si nota alguno de estos síntomas, solucione el problema con los pasos proporcionados en este documento.

- Altos porcentajes en el  show processes cpu resultado del comando.

Si su dispositivo de Cisco arroja un resultado del comando show processes cpu, puede utilizar la herramienta Analizador Cisco CLI para ver posibles problemas y correcciones.

Nota: para utilizar el Analizador de Cisco CLI, debe ser un usuario registrado de Cisco, haber iniciado sesión y tener habilitado JavaScript.

- Bajo rendimiento

- Por ejemplo, los servicios del router fallan al responder.

- Respuesta lenta en Telnet o no se puede hacer Telnet hacia el router.

- Respuesta lenta en la consola

- Respuesta baja o ausencia de respuesta en el ping

- El router no envía actualizaciones de routing a otros routers

- Errores de uso elevado de búfer

Solucionar problemas de alta utilización de la CPU

Una vez que advierte alguno de los síntomas mencionados en Síntomas de uso elevado de la CPU:

- Busque un problema de seguridad posible. Por lo general, un uso elevado de la CPU es consecuencia de un problema de seguridad, como un gusano o un virus que opera en la red. Existen más probabilidades de que sea la causa si no ha habido cambiado recientes en la red. Normalmente, un cambio de configuración, cuando agrega líneas adicionales a sus listas de acceso, puede mitigar los efectos de este problema. En Advertencias y notificaciones de seguridad de productos de Cisco, se incluye información sobre la detección de las causas más probables y soluciones alternativas específicas.

Para obtener información adicional, consulte:

- 100 preguntas y respuestas sobre riesgos relacionados con Internet

- Avisos y asesoría en seguridad de productos de Cisco

- Control de amenazas de Cisco

- Asegúrese de que todos los debug comandos del router estén desactivados con undebug all los no debug all comandos.

- ¿Puede ejecutar show comandos en el router? Si la respuesta es sí, comience a recopilar más información inmediatamente con estos show comandos.

- ¿Es imposible acceder al router? ¿Puede reproducir este problema? Si la respuesta es sí, apague y encienda el router y, antes de reproducir el problema, configure el scheduler interval 500 comando. Esto programa los procesos de prioridad baja para que se ejecuten cada 500 milisegundos, lo que le da tiempo para ejecutar algunos comandos, aún si el porcentaje del uso de la CPU es del 100 %. En los Cisco 7200 y Cisco 7500 Series Routers, utilice el  scheduler allocate 3000 1000  comando.

- ¿El router muestra síntomas de utilización de la CPU elevada en intervalos breves e imprevisibles? En caso afirmativo, recopile periódicamente la salida del show processes cpu comando, que muestra si la alta utilización de la CPU se debe a interrupciones o a un proceso determinado. Utilice esta secuencia de comandos UNIX y, en función de lo que encuentre primero, modifique la secuencia de comandos para recopilar los datos necesarios para investigar más a fondo el problema.

Determine las causas y resuelva el problema

Utilice el comando show processes cpu para verificar si el uso de la CPU es elevado debido a interrupciones o a procesos.

Gran utilización de la CPU debido a interrupciones

Para obtener más información, consulte Solución del problema de uso elevado de la CPU debido a interrupciones. Si el nivel de uso de la CPU aumenta debido a interrupciones que probablemente ocurren por paquetes de switching CEF, el nivel de uso de la CPU no afecta el rendimiento del router.

Uso elevado de la CPU al habilitar Netflow NDE en routers Cisco de la serie 7600

Si NetFlow está configurado para la versión 7, el procesador de ruteo realiza el flujo, lo que puede causar una alta utilización de la CPU.

Para solucionar el problema de uso elevado de la CPU debido a la versión 7 de NetFlow, configure mls nde sender versión 5, ya que la exportación de NetFlow la realiza el SP, que es el valor predeterminado para la versión 5 o la versión 9.

Alta utilización del CPU a causa de los procesos

Verifique qué proceso carga la CPU. La actividad inusual relacionada con un proceso genera un mensaje de error en el registro. Por lo tanto, la salida del show logging exec comando debe verificarse primero para detectar cualquier error relacionado con el proceso que consume muchos ciclos de la CPU.

Puede utilizar los comandos debug para resolver problemas de uso elevado de la CPU en estos procesos. Los comandos de depuración deben ejecutarse con extrema precaución, ya que pueden aumentar aún más la utilización de la CPU. Estos prerrequisitos deben cumplirse para poder utilizar los comandos debug de manera segura:

- Todos los destinos de registro, excepto el registro de búfer, deben estar deshabilitados o su nivel de gravedad de registro debe reducirse de 7 (depuración) a 6 (información) o menos, con el uso del  logging destination [ severity-level ]  configuration  comando adecuado. Para ver qué destinos de registro y niveles correspondientes están habilitados, lea las líneas de encabezado del show logging exec comando.

- Se debe aumentar el tamaño del búfer de registro para capturar suficiente información. Para obtener más detalles, consulte la descripción del  logging buffer global configuration  comando.

- Para poder leer y comprender mejor las depuraciones, se deben habilitar las marcas de fecha y hora en milisegundos. Para obtener más detalles, consulte la descripción del service timestamps global configuration comando.

En Troubleshooting High CPU Utilization due to Input Process se proporciona una sesión de depuración de ejemplo de los paquetes IP.

Para solucionar problemas de uso elevado de la CPU en procesos específicos, consulte:

- Entrada ARP: la sección Entrada ARP del documento Solución del problema de uso elevado de la CPU debido a procesos.

- Router BGP: sección Uso elevado de la CPU debido al proceso del router BGP del documento Solución de problemas de uso elevado de la CPU causados por el proceso del router BGP o escáner BGP.

- Escáner BGP: sección Uso elevado de la CPU debido al escáner BGP del documento Solución de problemas de uso elevado de la CPU causados por el proceso del router BGP o escáner BGP.

- EXEC: uso elevado de la CPU en los procesos EXEC y EXEC virtual.

- Entrada HyBridge: soluciona problemas de uso elevado de la CPU causados por el proceso de entrada HyBridge en routers con interfaces ATM.

- Entrada IP: solución de problemas de uso elevado de la CPU debido al proceso de entrada IP.

- Protocolo simple de administración de red (SNMP): el protocolo simple de administración de red (SNMP) de IP provoca un uso elevado de la CPU.

- LC ADJ Updater: ¿qué genera un uso elevado de la CPU en el proceso LC Adjacency Updater en un router de Internet Cisco de la serie 12000?

- Temporizador TCP: sección Temporizador TCP del documento Solución de problemas de uso elevado de la CPU debido a procesos.

- Fondo TTY: la sección Fondo TTY del documento Resolución de problemas de uso elevado de la CPU debido a procesos.

- EXEC virtual: consulte el enlace de EXEC. Uso elevado de la CPU en procesos Exec y Virtual Exec.

- Vtemplate Backgr: sección Fondo de plantilla virtual del documento Solución de problemas de uso elevado de la CPU debido a los procesos.

- Proceso SSH: Puede aumentar si captura unshow techo está habilitada una depuración.

- Otros procesos: la sección Otros procesos del documento, Resolución de problemas de uso elevado de la CPU debido a los procesos.

Pools de memoria PCI y FAST que indican un uso muy elevado

Es normal ver poca memoria disponible con pools de memoria PCI y Fast. La memoria PCI se utiliza para el acceso de memoria al controlador GT64260 en la placa base PRP para los buses PCI conectados a ella. Esta memoria se utiliza para la comunicación interna entre el controlador del sistema y otras partes, por lo que parece tener un uso elevado todo el tiempo.

Si se necesita más memoria, recurre a la memoria del pool de procesadores. La memoria Fast es una pequeña cantidad de memoria reservada para ser usada por las estructuras de datos del bloque del descriptor de la interfaz (BID) de hardware. Esta memoria también se reserva completamente durante el arranque, por lo que siempre indica un uso elevado debido a que se utiliza en su totalidad. Por esto, es normal ver poca memoria disponible con el pool de memoria Fast.

%SNMP-4-HIGHCPU: el proceso supera el umbral [dec]ms ([dec]ms IOS quantum) para [chars] de [chars]—result [chars]

El mensaje de uso excesivo de la CPU es similar al siguiente:

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

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

Se agregó un nuevo mensaje de syslog (HIGHCPU) al IOS de Cisco en 12.4(13). Si un proceso usa la CPU durante más de 200 ms, envía un mensaje HIGHCPU. El mensaje HIGHCPU no tiene ningún impacto en el router. Simplemente le permite saber qué proceso provocó el uso elevado de la CPU. El mensaje HIGHCPU es similar al mensaje CPUHOG, pero el mensaje HIGHCPU tiene un umbral de tolerancia mucho menor: una relación de 1/10 de la cantidad de tiempo expresado en milisegundos, en comparación con un mensaje CPUHOG. En las versiones anteriores a la 12.4(13) en el 2600, los procesos se ejecutaban durante más tiempo pero no generaban mensajes porque las versiones de Cisco IOS no tenían esta mejora.

Se supone que el procesamiento de PDU SNMP (consultas de objetos MIB) se debe realizar en una cantidad de tiempo de CPU individual para garantizar que cada objeto en la PDU se recupere como si fuera al mismo tiempo. Esto es un requisito exigido por el estándar del protocolo SNMP. Algunos objetos son agregados de muchos de datos en el sistema; por lo tanto, aunque sean objetos individuales, hay mucho procesamiento involucrado debido a la forma en que se organizan. Si no libera la CPU, según lo establecen las reglas de organización de MIB, existe la posibilidad de que se emita este mensaje de error. Además, si sondea varios objetos diferentes en el mismo grupo o en la misma tabla de objetos y recibe el mensaje de error, no es raro por este mismo motivo.

Este mensaje se utiliza para identificar los objetos que usan más tiempo de CPU que el previsto (pero aún no es un mensaje CPUHOG). Algunas herramientas de NMS/organización no funcionan bien durante los sondeos. Este problema se documenta con el ID de bug de Cisco CSCsl18139.

Nota: Solo los usuarios registrados de Cisco tienen acceso a las herramientas internas y a la información de errores.

Uso elevado de la CPU debido a cifrado de software

Cuando no hay ningún módulo de cifrado de hardware instalado en el dispositivo, el software debe cifrar todo el tráfico cifrado que pasa a través del dispositivo. Esto implica un uso intensivo de la CPU. No se recomienda utilizar el cifrado de software para cualquier implementación de cifrado con un requisito de rendimiento razonable. Una opción para resolver este problema es reducir el volumen de tráfico cifrado (volver a enrutar el tráfico o limitar los flujos que estén cifrados). Sin embargo, la mejor manera de abordar este problema es instalando un módulo de cifrado de hardware para este dispositivo, lo que elimina la necesidad de que el cifrado se realice a través del software.

Nota: Si habilita los mapas criptográficos en las interfaces física/de túnel, provoca el proceso de consumo de memoria y puede causar un aumento en la CPU.

Uso elevado de la CPU debido a fragmentación

Los reensambles pueden elevar la CPU muy alto si la CPU tiene que reensamblar una gran cantidad de paquetes.

Para resolver problemas de uso elevado de la CPU debido a la fragmentación, ejecute el comando tcp mss-adjust 1400 en la interfaz que establece el valor de tamaño de segmento máximo (MSS) de los paquetes TCP de sincronización/inicio (SYN) que pasan a través de un router.

Comandos para obtener más información

Estos comandos brindan más información acerca del problema:

- show processes cpu

- show interfaces

- show interfaces switching

- show interfaces stat

- show ip nat translations

- show align

- show version

- show log

Para obtener más detalles sobre los comandos show, vea la Referencia de Comandos de los Aspectos Fundamentales de la Configuración de Cisco IOS.

Si no se puede acceder al router de ninguna manera, primero apáguelo y vuelva a prenderlo. Luego, recopile periódicamente el resultado de los comandos de esta sección, excepto por el show log comando, cuyos mensajes deben registrarse en un servidor syslog. El intervalo para recopilar la salida debe ser de cinco minutos. Puede recopilar los datos manual o automáticamente con este script de shell UNIX. También puede recopilar datos con HTTP o SNMP.

El show processes cpu  comando

Este es un ejemplo del encabezado del show processes cpu comando.

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

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

En esta tabla, se describen los campos que aparecen en el encabezado:

Campo

Descripción

X

Uso promedio total durante los últimos cinco segundos (interrupciones + procesos)

S

Utilización media debido a interrupciones, durante los últimos cinco segundos1

Z

Utilización total promedio durante el último minuto 2

W

Utilización total media durante los últimos cinco minutos2

PID

ID de Proceso

Tiempo de ejecución

Tiempo de la CPU que usó el proceso (en milisegundos)

Llamado

Cantidad de veces que se ha invocado un proceso

uSecs

Microsegundos del tiempo de la CPU para cada invocación

5Seg

Utilización de la CPU por tarea en los últimos cinco segundos

1Min

Utilización de la CPU por tarea en los últimos 2 minutos

5 min

Uso de la CPU por tarea en los últimos cinco minutos^2

TTY

Terminal que controla el proceso

Proceso

Nombre del proceso

1 utilización de la CPU en el nivel de procesamiento = X – Y.

2Los valores no representan un promedio aritmético, pero sí un promedio exponencialmente decaído. Por lo tanto, los valores más recientes tienen más influencia en el promedio calculado.

Para obtener más detalles, consulte la Guía de Referencia de comandos show.

Nota: La utilización total de la CPU no debe utilizarse como medida de la capacidad del router para conmutar más paquetes. En los routers Cisco 7500, los procesadores de interfaz versátil (VIP) y los procesadores de ruta/switch (RSP) no informan sobre el uso lineal de la CPU. Cerca de la mitad de la energía de conmutación de paquetes por segundo viene después del 90 a 95 por ciento del uso de la CPU.

El show interfaces comando

Este comando se utiliza para determinar las interfaces activas.

El show interfaces switching  comando

Este comando se utiliza para determinar las trayectorias de switching activas en las interfaces.

Este es un ejemplo de salida del show interfaces switching comando para una interfaz:

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

El resultado enumera las trayectorias de conmutación para todos los protocolos configurados en la interfaz, de modo que pueda ver fácilmente qué tipo y la cantidad de tráfico pasa a través del router. Esta tabla explica los campos de salida.

Campo

Definición

Proceso

Paquetes procesados. Pueden ser paquetes destinados al router, o paquetes para los cuales no había entrada en la memoria caché de fast switching.

No se encuentra la memoria caché

Paquetes sin entrada en memoria caché de fast switching. El primer paquete para este destino (o flujo - depende del tipo de fast switching configurado) se procesa. Todos los paquetes subsiguientes son conmutados rápidamente a menos que el fast switching esté explícitamente inhabilitado en la interfaz saliente.

Rápido

Paquetes de conmutación rápida. Fast Switching está habilitado de forma predeterminada.

Auton/SSE

Paquetes de conmutación autónoma, conmutación de silicio o de conmutación distribuida. Disponible solo en routers Cisco de la serie 7000 con un procesador de switch o un procesador de switch de silicio (para switching autónomo o switching de silicio, respectivamente) o en routers Cisco de la serie 7500 VIP (para switching distribuido).

El  show interfaces stat  comando

Este comando es una versión resumida del show interfaces switching comando. Éste es un ejemplo de resultado de una interfaz:

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

El resultado de la  show interfaces stat es diferente para las diferentes plataformas y depende de las trayectorias de switching disponibles y configuradas.

El  show ip nat translations  comando

El show ip nat translations comando muestra las traducciones de traducción de direcciones de red (NAT) activas en el router. Cada traducción activa genera interrupciones de la CPU y afecta el uso total de la CPU del router. Una gran cantidad de traducciones puede tener un impacto en el rendimiento en el router.

Este es un ejemplo de salida del show ip nat translations comando:

router#show ip nat translations

Pro Inside global    Inside local    Outside local    Outside global

--- 172.16.131.1     10.10.10.1      ---              ---

El  show align  comando

Este comando está disponible sólo en las plataformas basadas en procesadores de computadoras con conjunto de instrucciones reducido (RISC). En estas plataformas, la CPU puede corregir las lecturas o escrituras de memoria que no se alinean. Ésta es una salida de ejemplo:

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

El  show version  comando

Para realizar un seguimiento de los problemas de uso elevado de la CPU, la información importante que se debe tomar de la salida del comando es la versión del software del IOS de Cisco, la plataforma, el tipo de CPU y el tiempo de actividad del router. La referencia de comandos proporciona una explicación detallada de este comando.

El  show log  comando

Este comando muestra el contendido de los mensajes de registro almacenados en la memoria intermedia.

Scripts EEM para la recopilación automática de datos en condiciones de CPU altas

Embedded Event Manager se puede utilizar para recopilar datos automáticamente cuando se produce una condición de CPU alta.  EEM se activa mediante la supervisión del OID de SNMP para la utilización del proceso o mediante la supervisión de los mensajes de registro del sistema para la salida del comando CPU threshold. Se pueden ejecutar varios comandos show a través de la secuencia de comandos EEM y la salida se puede guardar en el sistema de archivos.

Ejemplo de secuencia de comandos EEM con OID SNMP

Esta secuencia de comandos se ejecuta cuando la utilización de los procesos aumenta aproximadamente un 85%.

Para obtener más información, vea Cómo recopilar el uso de la CPU en dispositivos Cisco IOS mediante 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

Ejemplo de secuencia de comandos EEM con mensajes de notificación de umbral de CPU

Una combinación de EEM y el comando CPU threshold notifications puede activar el script EEM. En este ejemplo, se genera un mensaje de syslog CPURISHINGTHRESHOLD cuando la utilización supera el 85% durante un intervalo de 5 segundos.  La secuencia de comandos EEM puede activar el mensaje syslog y ejecutar una lista de comandos guardados en un archivo del sistema de archivos.

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

Ejemplo de secuencia de comandos EEM para iniciar/detener el perfil de CPU

EEM se utiliza para iniciar/detener la generación de perfiles de CPU, así como para registrar datos de varios comandos show. Para obtener más información, consulte Resolución de problemas de uso elevado de la CPU debido a interrupciones.

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 de shell UNIX para la recopilación periódica de datos

En este apéndice se describe una sencilla secuencia de comandos que captura periódicamente datos del router. La línea más importante de la secuencia de comandos es ésta:

(echo "show version") | telnet 192.168.1.1

El comando entre paréntesis se ejecuta en sub-shell y el resultado se envía a una sesión de Telnet. Este es un ejemplo de script para capturar el resultado de los comandos show version y show processes cpu :

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

Nota: En este script, todos los datos, incluida la contraseña, se envían en un formato de texto no cifrado.

En la primera sección, debe especificar la dirección IP y el directorio de destino para los archivos de registro. La segunda sección incluye los comandos reales que se envían al router. El primero es el nombre de usuario, luego la contraseña, y así sucesivamente. para capturar solamente las primeras líneas de salida de ciertos comandos se incluye. Terminal length está configurado en un valor corto (15 en este caso) y el caracter "q" sólo es enviado por solicitud.

Si los datos se recopilan periódicamente, la salida de show version muestra si el problema tiene un carácter periódico, por ejemplo, si aparece siempre a una determinada hora del día o en un día concreto de la semana. Si debe recopilar el resultado de más comandos, se pueden agregar a la secuencia de comandos de la misma manera que los que se muestran en el ejemplo. Si necesita truncar el resultado enviado al archivo, primero incremente el periodo de inactividad (el comando sleep entre paréntesis).

Ejecute esta secuencia de comandos cada cinco minutos si el problema de uso elevado de la CPU aparece con frecuencia y no dura mucho tiempo. De lo contrario, puede ejecutarlo cada 15 o 30 minutos. Para que le resulte más sencillo, guarde la secuencia de comandos en un archivo, como /usr/bin/router-script. Luego, para ejecutarlo cada cinco minutos, agregue la siguiente línea al archivo /etc/crontab:

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

Reinicie el servidor cron. Si no tiene la autoridad para cambiar el archivo /etc/crontab, ejecute la secuencia de comandos en un proceso separado de la siguiente manera:

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

Información Relacionada

- Alta utilización de la CPU en switches de Catalyst 2900XL/3500XL

- Fundamentos del ajuste de rendimiento

- Soporte técnico y descargas de Cisco