Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Conventions

Possíveis causas da utilização elevada da CPU devido a interrupções

Caminho de switching inapropriado

CPU Executando Correções de Alinhamento

Roteador sobrecarregado com tráfego

Erro de software

Portas de voz configuradas no roteador

Interfaces ativas do Modo de Transferência Assíncrona (ATM - Asynchronous Transfer Mode) no Roteador

Muitos Punts de Encaminhamento Expresso Paralelo (PXF - Parallel Express Forwarding) para o RP

Criação de perfil da CPU

Comando show interfaces switching

Exemplo de script para obter perfis de CPU em CPU alta

Informações Relacionadas

Introdução

Este documento explica os motivos para alta utilização da CPU devido a interrupções e fornece dicas e orientações para Troubleshooting.

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Conventions

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Possíveis causas da utilização elevada da CPU devido a interrupções

A alta utilização da CPU em um nível de interrupção é causada principalmente por pacotes tratados no nível de interrupção. As interrupções são geradas sempre que um caractere é enviado do console ou das portas auxiliares de um roteador.

Os receptores/transmissores assíncronos universais (UARTs) são lentos se comparados à velocidade de processamento do roteador, portanto é improvável embora possível que as interrupções no console ou auxiliar possam causar uma alta utilização de CPU no roteador (a menos que o roteador tenha um grande número de linhas tty em uso).

Existem vários motivos para a alta utilização do CPU devido a interrupções:

- Um caminho de switching inadequado é configurado no roteador

- A CPU está executando correções de alinhamento

- O roteador está sobrecarregado com tráfego

- Há um bug no software Cisco IOS® em execução no roteador

- As portas de voz estão configuradas no roteador.

- Há interfaces do Modo de transferência assíncrono (ATM) ativas no roteador.

- Muitos pacotes estão sendo direcionados do PXF para o RP (Processador de rotas)

Caminho de switching inapropriado

Para fazer Troubleshooting desse problema potencial, verifique o seguinte:

- Verifique se o roteador está executando o Cisco Express Forwarding:

- Verifique a configuração do comando de configuração global ip cef.

- Verifique se Cisco Express Forwarding está habilitado e funcionando, emitindo o comando show ip cef summary.

- Verifique se o Cisco Express Forwarding está habilitado como o caminho de switching em todas as interfaces. Isso pode ser visto nas saídas de show cef interface e show ip interface. Se o Cisco Express Forwarding estiver configurado, mas não ativado em uma interface, isso significa que o encapsulamento da interface não é suportado no Cisco Express Forwarding. Verifique se o Cisco Express Forwarding está operacional, ou seja, verifique se os pacotes são realmente comutados através do roteador usando o Cisco Express Forwarding, observando o comando show cef not-cef-switched .

- Utilizando o comando show cef drop e o comando show interfaces switching (um comando oculto que pode ser utilizado para procurar por falhas de cache), verifique se o Cisco Express Forwarding não está derrubando pacotes. Se esse for o caso, consulte a página de Troubleshooting de CEF.

- Verifique se alguma das interfaces tem listas de acesso longas configuradas.

- Como regra geral, qualquer lista de acesso com mais de dez linhas é considerada longa.

- Examinar repetidamente longas listas de acesso implica um uso muito intensivo de CPU. Na switching de fluxo de rede, se o fluxo já estiver no cache, você não precisará mais verificar a lista de acesso. Nesse caso, a comutação NetFlow seria útil. Você pode habilitar a switching NetFlow emitindo o comando ip route-cache flow.

- Observe que se o Cisco Express Forwarding e o NetFlow estiverem configurados em uma interface, o Cisco Express Forwarding será usado para tomar uma decisão de switching.

- Verifique se o switching do NetFlow está configurado no roteador:

- Verifique as estatísticas emitindo o comando show ip cache flow. Examine o número de novos fluxos por segundo.

- Se o Cisco Express Forwarding não estiver habilitado, habilite-o para acelerar a decisão de switching.

- Se não houver listas de acesso longas, tente desativar a comutação NetFlow.

CPU Executando Correções de Alinhamento

Os erros de alinhamento são causados por leituras e gravações desalinhadas. Por exemplo, uma leitura de dois bytes em que o endereço de memória não é um múltiplo par de dois bytes é um erro de alinhamento.

Os erros de alinhamento geralmente são causados por um bug de software. A CPU corrige esse erro, mas se houver muitas correções a serem feitas, isso se torna intensivo em relação à CPU. Para solucionar esse tipo de erro, consulte Solucionando Problemas de Acessos Artificiais, Erros de Alinhamento e Interrupções Artificiais.

Roteador sobrecarregado com tráfego

A saída dos comandos show interfaces e show interfaces switching (oculto) fornecem informações sobre as interfaces que estão sobrecarregadas. Para capturar a saída desses comandos em um arquivo de log para análise posterior, siga estas etapas.

1. Emita o comando terminal length 0.

2. Verifique a saída de show interfaces . Examine a carga e o número de aceleradores nas interfaces. A carga é um valor médio calculado, por padrão, em cinco minutos. Para alterar esse intervalo, emita o comando load-interval seconds, onde os segundos representam o período de tempo durante o qual os dados são usados para calcular estatísticas de carga. Use um valor que seja múltiplo de 30.

Acelerações são uma excelente indicação de um roteador sobrecarregado. Mostram o número de vezes que o receptor na porta foi desativado, possivelmente devido à sobrecarga do buffer ou do processador. Junto com a utilização elevada do CPU em um nível de interrupção, os aceleradores indicam que o roteador está sobrecarregado com tráfego.

3. Verifique a saída do comando show interfaces switching (oculto) para ver que tipo de tráfego (protocolo e caminho de switching) está passando pela interface sobrecarregada. Se algumas interfaces estiverem muito sobrecarregadas com tráfego, considere reprojetar o fluxo de tráfego na rede ou atualizar o hardware.

4. O loop de rede também pode ser um motivo para a sobrecarga de tráfego. Verifique sua topologia de rede.

Se houver uma possibilidade de que um único dispositivo esteja gerando pacotes em uma taxa extremamente alta e sobrecarregando o roteador, você poderá determinar o endereço MAC desse dispositivo adicionando o comando de configuração de interface ip accounting mac-address {input|output} à configuração da interface sobrecarregada.

O comando show interfaces [ ] mac-accounting exibe as informações coletadas. Quando o endereço MAC do dispositivo de origem é encontrado, o endereço IP correspondente pode ser encontrado verificando-se a saída do comando show ip arp.

Erro de software

Se você suspeitar de um bug na versão do software Cisco IOS em execução no roteador, poderá verificar o Bug Toolkit (somente clientes registrados) para obter um bug que reporte sintomas semelhantes em um ambiente semelhante.

Portas de voz configuradas no roteador

Mesmo que não haja tráfego, o software continua a monitorar a sinalização associada a canal (CAS), que usa recursos da CPU.

Interfaces ativas do Modo de Transferência Assíncrona (ATM - Asynchronous Transfer Mode) no Roteador

Mesmo que não haja tráfego, as interfaces ATM enviam célula nula (por padrões ATM) e continuam a usar recursos da CPU.

Muitos Punts de Encaminhamento Expresso Paralelo (PXF - Parallel Express Forwarding) para o RP

Quando o PXF apontar muitos pacotes no RP, o RP poderá ficar sobrecarregado. Você pode comparar a quantidade de pacotes apontados com a quantidade total de pacotes de entrada emitindo o comando show pxf accounting summary. Use o mesmo comando para descobrir por que os pacotes estão apontados para o RP. Isso pode ser um bug de software ou o tráfego não é suportado pelo PXF.

Criação de perfil da CPU

A criação de perfis de CPU é uma maneira de determinar onde a CPU gasta seu tempo. O sistema funciona verificando o local do processador a cada quatro milissegundos. A contagem desse local na memória é incrementada. A causa raiz dessa utilização da CPU será determinada pelo perfil da CPU.

Conclua estas etapas para executar o perfil da CPU. A utilização da CPU deve ser feita quando você estiver observando uma utilização alta da CPU.

Observação: todos esses comandos devem ser digitados no modo de ativação

1. Capture a saída de show region e pegue o endereço inicial, o endereço final e o tamanho de main:text region

2. Capture a saída do comando show memory statistics e verifique o tamanho do maior bloco na memória do processador.

3. Execute profile task interrupt para configurar a criação de perfil somente para interrupções.

4. Compare o tamanho da região main:text com o tamanho do maior bloco de memória livre do processador. Idealmente, o bloco maior deve ser maior que o main:text.

Se o bloco maior for menor que main:text size, ajuste a granularidade para certificar-se de que a criação de perfil seja capaz de obter um bloco de memória do processador.

Se o bloco maior for maior que a região main:text, use uma granularidade de 4.

Se o bloco maior for maior que a metade da região main:text, use uma granularidade de 8.

Se o bloco maior for maior que um quarto da região main:text, use uma granularidade de 10 ( 16 em hexadecimal).

Observação: a granularidade deve ser uma potência de 2 e deve ser a menor possível (mas não menor que 4)

5. Iniciar criação de perfil fazendo perfil

Profile <starting address> <ending address> <granularity value>

O endereço inicial e o endereço final são determinados a partir da Etapa 1.

6. Aguarde de 5 a 10 minutos

7. Parar criação de perfil fazendo interrupção de perfil

8. Capture a saída de show profile terse.

9. Certifique-se de que a memória seja liberada fazendo unprofile all

Comando show interfaces switching

Este comando é utilizado para determinar caminhos de switching ativos nas interfaces. Para obter mais informações sobre caminhos de switching no software Cisco IOS, consulte Configuração de Caminhos de Switching .

O exemplo a seguir ilustra uma saída do comando show interfaces switching de uma interface.

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

A saída lista os caminhos de switching para todos os protocolos configurados na interface, para que você possa ver facilmente que tipo e quantidade de tráfego está passando pelo roteador. A seguinte tabela explica os campos de saída:

Campo

Definição

Processo

Pacotes processados. Podem ser pacotes destinados ao roteador ou pacotes para os quais não há nenhuma entrada no cache de switching rápida.

Falhas de cache

Os pacotes para os quais não havia entrada no cache de switching rápida. O primeiro pacote para esse destino (ou fluxo - dependendo do tipo de switching rápida configurado) será processado. Todos os pacotes subseqüentes serão comutados rapidamente, a menos que a switching rápida esteja explicitamente desativada na interface de saída.

Rápido

Pacotes Fast Switched A switching rápida está habilitada por padrão.

Auton/SSE

Pacotes comutados autônomos, comutados por silício ou comutados por distribuição. Disponíveis somente nos roteadores Cisco 7000 Series com um processador de switch ou um processador de switch de silício (para switching autônomos ou switching de silício, respectivamente) ou nos roteadores Cisco 7500 Series com um VIP (para switching distribuído).

Exemplo de script para obter perfis de CPU em CPU alta

Este script salva as saídas em flash:CPU_Profile quando a utilização da CPU é superior a 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"

Informações Relacionadas

- Troubleshooting de Alta Utilização de CPU em Cisco Routers

- Suporte Técnico e Documentação - Cisco Systems