Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Convenciones

¿Qué son los procesos de Exec y de Exec virtual?

¿Cómo pueden los procesos Exec y Virtual Exec causar una alta utilización de la CPU?

Solución de problemas de uso elevado de la CPU en el proceso Exec

Solución de problemas de uso elevado de la CPU en el proceso Virtual Exec

Información Relacionada

Introducción

Este documento explica los procesos de Exec y Exec virtual y la solución de problemas de la alta utilización de CPU en estos procesos.

Prerequisites

Requirements

Cisco recomienda leer Solución de problemas de uso elevado de la CPU en routers Cisco antes de continuar con este documento.

Componentes Utilizados

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

La información que se presenta en este documento se originó a partir de dispositivos dentro de un ambiente de laboratorio específico. All of the devices used in this document started with a cleared (default) configuration. Si la red está funcionando, asegúrese de haber comprendido el impacto que puede tener un comando antes de ejecutarlo.

Convenciones

For more information on document conventions, refer to the Cisco Technical Tips Conventions.

¿Qué son los procesos de Exec y de Exec virtual?

El proceso Exec en el software Cisco IOS® es responsable de la comunicación en las líneas tty (consola, auxiliar, asíncrono) del router. El proceso Virtual Exec (Ejecución virtual) es responsable de las líneas vty (sesiones telnet).

Los procesos Exec y Virtual Exec son procesos de prioridad media, por lo que si hay otros procesos que tienen una prioridad más alta (Alta o Crítica), los procesos de prioridad más alta obtienen los recursos de la CPU.

router#show process | i CPU|Exec

CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0%

PID QTy       PC Runtime (ms)    Invoked   uSecs    Stacks TTY Process

22 M*         0         9644       1733    5564 9732/12000  0 Exec

46 ME  80468980           28          6    466610520/12000 66 Virtual Exec

Refiérase a El Comando show processes para obtener una explicación completa del resultado de este comando.

¿Cómo pueden los procesos Exec y Virtual Exec causar una alta utilización de la CPU?

En caso de que se transfieran muchos datos a través de estas sesiones, el nivel de utilización de CPU para el proceso Exec se incrementa.

Esto se debe a que, cuando el router desea enviar un carácter simple a través de estas líneas, utiliza algunos recursos de la CPU:

- En el caso de la consola (Exec), el router emplea un interruptor por caracter.

Se puede ver la interrupción de consola en el resultado del comando show stacks:

router#show stacks

Minimum process stacks:

Free/Size   Name

11516/12000  Router Init

9404/12000  Init

5520/6000   AIM_MIB_CREATION

5448/6000   RADIUS INITCONFIG

9728/12000  Virtual Exec

Interrupt level stacks:

Level    Called Unused/Size  Name

1    23035463   7008/9000  Network interfaces

2           0   9000/9000  Timebase Reference Interrupt

3           0   9000/9000  PA Management Int Handler

6        9791   8892/9000  16552 Con/Aux Interrupt

7  1334963882   8920/9000  MPC860 TIMER INTERRUPT

- Para la línea vty (Virtual Exec), la sesión telnet debe generar un paquete TCP y enviar los caracteres al cliente telnet.

Solución de problemas de uso elevado de la CPU en el proceso Exec

A continuación se enumeran algunas de las posibles razones de la alta utilización de la CPU en el proceso Exec:

- Se envían demasiados datos a través del puerto de la consola.

Demasiados mensajes de consola generados por el router es una causa posible.

1. Compruebe si se ha iniciado algún debug en el router con el comando show debugging.

2. Desactive el registro de la consola en el router con (sin consola de registro ).

3. Verifique si se imprime una salida larga en la consola (por ejemplo, un show tech-support o una memoria show ).

- Hay una falla en el software del IOS de Cisco.

Utilice el Bug Toolkit (sólo clientes registrados) para buscar errores con este síntoma en su versión de Cisco IOS Software.

- El comando exec se configura para líneas asincrónicas y auxiliares.

- Si una línea sólo tiene tráfico saliente, el proceso Exec debe desactivarse para esta línea, porque si el dispositivo (por ejemplo, un módem) conectado a esta línea envía algunos datos no solicitados, el proceso Exec comienza en esta línea.

- Si el router se utiliza como servidor terminal (para telnet inverso a otras consolas de dispositivos), se recomienda que no exec en las líneas conectadas a la consola de los otros dispositivos. De lo contrario, los datos que regresan de la consola podrían dar inicio a un proceso Exec, proceso que utiliza recursos de la CPU.

Solución de problemas de uso elevado de la CPU en el proceso Virtual Exec

A continuación se enumeran algunas de las posibles razones de la alta utilización de la CPU en el proceso Virtual Exec:

- Un bug de software en el Cisco IOS Software

Utilice el Bug Toolkit (sólo clientes registrados) para buscar errores con este síntoma para su versión de Cisco IOS Software.

- Se envían demasiados datos a través de las sesiones telnet.

El motivo más habitual por el que se registra un uso excesivo de CPU en el proceso Virtual Exec es que se transfieren demasiados datos desde el router a la sesión Telnet.

Esto puede ocurrir cuando los comandos con salidas largas (como show tech-support, show memory, etc.) se ejecutan desde la sesión telnet.

La cantidad de datos transferidos a través de cada sesión vty se puede verificar con el comando show tcp:

router#show tcp vty 0

tty66, virtual tty from host 10.48.77.64

Connection state is ESTAB, I/O status: 1, unread input bytes: 1

Local host: 10.48.77.27, Local port: 23

Foreign host: 10.48.77.64, Foreign port: 11006

........

Datagrams (max data segment is 1460 bytes):

Rcvd: 525 (out of order: 0), with data: 53, total data bytes: 87

Sent: 366 (retransmit: 257, fastretransmit: 0), with data: 356, total data bytes:

158187

- Una sesión telnet bloqueada lleva a una CPU elevada debido al proceso Virtual Exec. Para despejar la sesión telnet de bloqueo, el dispositivo necesita ser recargado en la mayoría de los casos. La otra forma de borrar la sesión de Telnet de bloqueo es borrar el proceso TCP. El proceso TCP se puede identificar con el comando show tcp brief como en este resultado:

Router#show tcp brief

TCB       Local Address           Foreign Address        (state)

02FA62D0  172.16.152.75.23        dhcp-171-69-104-.3013  ESTAB

A partir del resultado anterior, el proceso TCP 02FA62D0 necesita ser borrado para borrar la sesión Telnet de bloqueo con el comando clear tcp tcb 0x02fa62d0 .

Información Relacionada

- Resolución de problemas por uso excesivo de las CPU de los routers de Cisco

- Soporte Técnico - Cisco Systems