Este documento explica las razones por las cuales se utiliza de manera intensa la CPU debido a interrupciones y le provee consejos y pautas para la resolución de problemas.
No hay requisitos específicos para este documento.
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
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.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
El alto uso de la CPU en un nivel de interrupción es causado principalmente por paquetes manejados en el nivel de interrupción. Las interrupciones se generan cada vez que se produce un carácter desde la consola o los puertos auxiliares de un router.
En comparación con los routers, los Receptores/transmisores asíncronos universales (UART) tienen una velocidad de procesamiento lenta. Por eso, es poco probable, pero posible, que las interrupciones de la consola o auxiliares causen una alta utilización de la CPU en el router (a menos que el router esté usando una gran cantidad de líneas TTY).
Existen varios motivos para la alta utilización de la CPU debido a interrupciones:
Se configura una ruta de conmutación inapropiada en el router
Hay un error en el software Cisco IOS® que se ejecuta en el router
Existen interfaces activas del Asynchronous Transfer Mode (ATM) en el router
Demasiados paquetes están siendo enviados del PXF al procesador de rutas (RP)
Para solucionar este problema potencial, verifique lo siguiente:
Compruebe si el router está ejecutando Cisco Express Forwarding o no:
Verifique la configuración para el comando de configuración global ip cef.
Verifique que Cisco Express Forwarding esté habilitado y en funcionamiento al ejecutar el comando show ip cef summary.
Verifique que Cisco Express Forwarding esté habilitado como la trayectoria de conmutación en todas las interfaces. Puede observar esto en el resultado de show cef interface y show ip interface. Si se configura Cisco Express Forwarding, pero no se habilita en una interfaz, esto significa que la encapsulación de la interfaz no se soporta en Cisco Express Forwarding. Verifique que Cisco Express Forwarding esté operativo, es decir, verifique si los paquetes se conmutan realmente a través del router mediante Cisco Express Forwarding, observando el comando show cef not-cef-switched.
Utilice el comando show cef drop y el comando show interfaces switching (este es un comando oculto que puede utilizar para buscar pérdidas de caché), para verificar que Cisco Express Forwarding no esté liberando paquetes. Si este es el caso, vea la página de Troubleshooting de CEF.
Verifique si alguna de las interfaces tiene listas de acceso largas configuradas.
Como regla general, cualquier lista de acceso con más de diez líneas se considera larga.
La revisión reiterada de las listas de acceso largas exige mucho a la CPU. Con la conmutación NetFlow, si el flujo ya está en el caché, no necesita revisar la lista de acceso. En este caso, el switching de NetFlow sería útil. Puede habilitar la conmutación de NetFlow mediante la ejecución del comando ip route-cache flow.
Tenga en cuenta que si Cisco Express Forwarding y NetFlow están configurados en una interfaz, Cisco Express Forwarding se utilizará para tomar una decisión de conmutación.
Verifique que la conmutación NetFlow se encuentre configurada en el router:
Verifique las estadísticas ejecutando el comando show ip cache flow. Observe el número de nuevos flujos por segundo.
Si Cisco Express Forwarding no está habilitado, active Cisco Express Forwarding para acelerar la decisión de switching.
Si no hay listas de acceso largas, intente desactivar la conmutación de NetFlow.
Los errores de alineación son causados por lecturas y escrituras mal alineadas. Por ejemplo, una lectura de dos bytes donde la dirección de memoria no es un múltiplo par de dos bytes es un error de alineación.
Los errores de alineación suelen deberse a un error de software. La CPU corrige este error, pero si hay muchas correcciones que hacer, esto hace que el uso de CPU sea intensivo. Para solucionar este tipo de error, vea Solución de problemas de acceso espurio, errores de alineación e interrupciones espurias.
La salida de los comandos show interfaces y show interfaces switching (hidden) proporciona información sobre las interfaces que están sobrecargadas. Siga los pasos que se indican a continuación para capturar el resultado de estos comandos en un archivo de registro para realizar un análisis posterior.
Ejecute el comando terminal length 0.
Verifique el resultado de show interfaces . Examine la carga y el número de aceleradores en las interfaces. La carga es un valor promedio computado, en forma predeterminada, en un periodo de cinco minutos. Para cambiar este intervalo, ejecute el comando load-interval seconds , donde los segundos representan el tiempo durante el cual se utilizan los datos para calcular las estadísticas de carga. Utilice un valor múltiplo de 30.
Los aceleradores son un buen indicio de un router sobrecargado. Muestran la cantidad de veces que el receptor en el puerto ha sido inhabilitado, posiblemente debido a la sobrecarga del búfer o del procesador. Junto con la alta utilización de CPU en un nivel de interrupción, los aceleradores indican que el router está sobrecargado de tráfico.
Verifique el resultado del comando show interfaces switching (hidden) para ver qué tipo de tráfico (protocolo y ruta de conmutación) pasa a través de la interfaz sobrecargada. Si algunas interfaces están demasiado sobrecargadas con tráfico, considere rediseñar el flujo de tráfico en la red o actualizar el hardware.
El loop de red también puede ser una razón para la sobrecarga de tráfico. Verifique su topología de red.
Si existe la posibilidad de que un solo dispositivo genere paquetes a una velocidad extremadamente alta y, por lo tanto, sobrecargue el router, puede determinar la dirección MAC de ese dispositivo agregando el comando de configuración de la interfaz ip accounting mac-address {input|output} a la configuración de la interfaz sobrecargada.
El comando show interfaces [ ] mac-accounting muestra la información recolectada. Una vez que se encuentra la dirección MAC del dispositivo de origen, se puede encontrar la dirección IP correspondiente comprobando el resultado del comando show ip arp.
Si sospecha que se ha producido un error en la versión de software del IOS de Cisco que se ejecuta en el router, puede verificar el Bug Toolkit (sólo clientes registrados) para un error que informe síntomas similares en un entorno similar.
Incluso si no hay tráfico, el software continúa supervisando la señalización asociada al canal (CAS), que utiliza recursos de la CPU.
Incluso si no hay tráfico, las interfaces ATM envían celdas nulas (según los estándares ATM) y continúan usando recursos de CPU.
Cuando PXF ubica demasiados paquetes en el RP, el RP puede sobrecargarse. Puede comparar la cantidad de paquetes perforados con la cantidad total de paquetes entrantes mediante la ejecución del comando show pxf accounting summary. Utilice el mismo comando para averiguar por qué los paquetes están apuntando al RP. Esto podría ser un error de software o el tráfico no es soportado por PXF.
La definición de perfiles de CPU es una forma de sobrecarga baja para determinar dónde gasta su tiempo la CPU. El sistema funciona muestreando la ubicación del procesador cada cuatro milisegundos. El recuento de esa ubicación en la memoria se incrementa. La causa raíz de esta utilización de la CPU será determinada por el perfil de la CPU.
Complete estos pasos para realizar el perfil de CPU. La utilización de la CPU se ha realizado cuando se está experimentando un uso elevado de la CPU.
Nota: Todos estos comandos deben escribirse cuando se encuentren en modo de activación
Capture el resultado de show region y tome la dirección inicial, la dirección final y el tamaño de la región principal:text
Capture el resultado de show memory statistics y verifique el tamaño del bloque más grande en la memoria del procesador.
Realice la interrupción de la tarea de perfil para configurar la generación de perfiles sólo para interrupciones.
Compare el tamaño de la región principal:texto con el tamaño del bloque más grande de memoria libre del procesador. Lo ideal es que el bloque más grande sea mayor que el principal:texto.
Si el bloque más grande es menor que el tamaño principal:texto, ajuste la granularidad para asegurarse de que la generación de perfiles pueda obtener un bloque de memoria del procesador.
Si el bloque más grande es mayor que el área principal:texto, utilice una granularidad de 4.
Si el bloque más grande es mayor que la mitad de la región main:text, utilice una granularidad de 8.
Si el bloque más grande es mayor que un cuarto de la región principal:texto, utilice una granularidad de 10 (16 en hexadecimal).
Nota: La granularidad debe ser una potencia de 2 y ser lo más pequeña posible (pero no inferior a 4)
Comenzar la creación de perfiles haciendo perfil
Profile <starting address> <ending address> <granularity value>
La dirección inicial y la dirección final se determinan a partir del paso 1.
Espere de 5 a 10 minutos
Detener la creación de perfiles haciendo parada de perfil
Capture el resultado de show profile terse.
Asegúrese de que la memoria se libera haciendo desperfil de todos
Este comando se utiliza para determinar trayectos de switching activos en interfaces. Para obtener más información sobre las trayectorias de conmutación en el software Cisco IOS, consulte Configuración de Trayectorias de Switching.
El siguiente es un ejemplo del resultado del comando show interfaces switching 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. La tabla siguiente 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. Se procesará el primer paquete para este destino (o flujo, dependiendo del tipo de fast switching configurado). Todos los paquetes subsecuentes serán procesados por fast switching, a menos que éste último 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 conmutados autónomos, conmutados por silicio o distribuidos. Solamente disponible en los routers de la serie 7000 de Cisco con procesador de switch o procesador de switch de silicio (para conmutación autónoma o conmutación de silicio, respectivamente) o en los routers de la serie 7500 de Cisco con una VIP (para conmutación distribuida). |
Este script guarda los resultados en flash:CPU_Profile cuando la utilización de la CPU es superior al 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"
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
29-May-2008 |
Versión inicial |