Roteadores : Roteadores Cisco 1000 Series

Solucionando Problemas de Alta Utilização de CPU em Routers Cisco

22 Maio 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (24 Julho 2008) | Feedback


Índice

Introdução
Pré-requisitos
     Requisitos
     Componentes Usados
     Convenções
Sintomas de Alta Utilização de CPU
Solução de Problemas Inicial
Determinando Causas e Resolvendo o Problema
     Alta Utilização de CPU devido a Interrupções
     Alta Utilização de CPU devido a Processos
Comandos para Obtenção de Mais Informações
     O comando show processes cpu
     Comando show interfaces
     Comando show interfaces switching
     Comando show interfaces stat
     conversões show ip nat
     Comando show align
     Comando show version
     Comando show log
Script de shell do UNIX para Coletar Dados Periodicamente
Discussões relacionadas da comunidade de suporte da Cisco
Informações Relacionadas

Introdução

Este documento descreve sintomas e causas comuns de uma grande utilização da CPU em roteadores Cisco e oferece orientações e soluções de problemas.

Pré-requisitos

Requisitos

A solução de problemas de alta utilização de CPU nos roteadores Cisco requer compreensão dos caminhos de switching do Cisco IOS® Software. Para obter informações sobre os caminhos de switching do software Cisco IOS, consulte Princípios Básicos do Ajuste de Desempenho.

Componentes Usados

Este documento não está restrito às versões específicas de software e de hardware.

Convenções

Para obter mais informações sobre convenções em documentos, consulte as Convenções de Dicas Técnicas da Cisco.

Sintomas de Alta Utilização de CPU

Esta lista descreve os sintomas comuns de utilização elevada da CPU. Se você observar qualquer um destes sintomas, siga os passos para solução de problemas neste documento para atenuar o problema.

  • Altas porcentagens na saída do comando show processes cpu

    Se você tiver a saída de um comando show processes cpu de seu dispositivo da Cisco, é possível usar para exibir possíveis problemas e correções. Para utilizar , você deve ser um cliente registrado, estar conectado e possuir o JavaScript habilitado.

  • Desempenho lento

  • Os serviços no roteador não respondem, por exemplo:

    • Resposta lenta no Telnet ou impossível realizar o Telnet para o roteador

    • Resposta lenta no console

    • Resposta lenta ou ausente para efetuar ping

    • O roteador não envia atualizações de roteamento para outros roteadores

Solução de Problemas Inicial

Assim que perceber qualquer um dos sintomas acima:

  • Procure um possível problema de segurança. Normalmente, alta utilização de CPU é provocada por um problema de segurança, como um worm ou vírus operando na rede. Essa é a causa mais provável se não tiverem sido feitas alterações recentes na rede. Normalmente, uma alteração de configuração, como a adição de linhas adicionais às suas listas de acesso, pode mitigar os efeitos desse problema. Relatórios Formais e Observações de Segurança dos Produtos da Cisco contém informações sobre detecção das causas mais prováveis e das soluções mais específicas.

    Para obter mais informações, consulte:

  • Verifique se todos os comandos de depuração no roteador estão desativados, emitindo os comandos undebug all ou no debug all. Para obter mais informações sobre o uso de comandos de depuração, consulte Usando Comandos de Depuração.

  • Ocê consegue emitir comandos show no roteador? Se conseguir, inicie a obtenção de mais informações imediatamente, usando esses comandos show .

  • O roteador está inacessível? É possível reproduzir esse problema? Se for possível, reinicialize o roteador e, antes de reproduzir o problema, configure o comando scheduler interval 500 . Assim, estará programando os processos de baixa prioridade para serem executados a cada 500 milissegundos, fazendo com que tenha tempo de executar alguns comandos, mesmo que a utilização do CPU seja de 100 por cento. Nos roteadores Cisco 7200 e Cisco 7500 Series, use o comando scheduler allocate 3000 1000 .

  • O roteador mostra sintomas de alto uso da CPU em intervalos breves ou imprevisíveis? Se mostrar, obtenha, periodicamente, a saída do comando show processes cpu , que mostra se a alta utilização de CPU é provocada por interrupções ou por um determinado processo. Use esse script UNIX e, com base nas primeiras descobertas, modifique o script para coletar dados necessários para uma investigação adicional do problema.

Determinando Causas e Resolvendo o Problema

Use o comando show processes cpu para verificar se a utilização de CPU é alta devido a interrupções ou processos.

Alta Utilização de CPU devido a Interrupções

Para obter mais informações, consulte Solucionando Problemas de Alta Utilização de CPU Provocados por Interrupções.

Alta Utilização de CPU devido a Processos

Verifique qual processo está sendo carregado na CPU. Uma atividade incomum relacionada a um processo resulta em uma mensagem de erro no registro. Portanto, a saída do comando show logging exec deve ser verificada primeiro por erros relacionados ao processos que consomem muitos ciclos de CPU.

A depuração também pode ser de grande ajuda para solucionar problemas de alta utilização de CPU em processos. No entanto, a depuração deve ser realizada com muito cuidado, pois pode elevar ainda mais a utilização de CPU. Esses pré-requisitos devem ser atendidos, para tornar a depuração segura e útil:

  • Todos os destinos de registros, exceto o registro de buffer, deverão ser desativados ou seu nível de gravidade de registro deverá ser reduzido de 7 (depuração) para 6 (informacional) ou menos, usando o comando de configuração adequado logging destination [severity-level] . Para ver quais destinos de registro e níveis correspondentes estão habilitados, leia as linhas de cabeçalho do comando show logging exec.

  • O tamanho do buffer de registro deve ser aumentado, para capturar informações suficientes. Para obter mais detalhes, consulte a descrição do comando de configuração global logging buffered .

  • Para conseguir ler e entender melhor as depurações, a data e a hora e o formato de tempo de milisegundo deverão ser habilitados. Para obter mais detalhes, consulte a descrição do comando de configuração global service timestamps .

Um exemplo de sessão de depuração de pacotes IP é fornecido em Solução de Problemas de Alta Utilização de CPU no Processo de Entrada de IP.

Para solucionar problemas de alta utilização de CPU em processos específicos, consulte o link adequado.

  • Entrada ARP—Seção Entrada ARP do documento Solução de Problemas de Alta Utilização de CPU Devido a Processos

  • Router BGP—Seção Alta CPU devido a Processo do Roteador de BGP do documento Solução de Problemas de Alta CPU Provocado pelo Scanner de BGP ou Processo do Roteador de BGP

  • Scanner BGP — Seção Alta CPU devido a Scanner BGP do documento Solução de Problemas de Alta CPU provocados por Scanner BGP ou Processo do Roteador BGP

  • EXEC — Alta Utilização de CPU nos Processos EXEC e Virtual EXEC

  • Entrada de HyBridge — Solução de Problemas de Alta Utilização de CPU Provocados pelo Processo de Entrada de HyBridge em Roteadores com Interfaces ATM

  • Entrada de IP — Solução de Problemas de Alta Utilização de CPU Devido a Processo de Entrada de IP

  • Protocolo de Gerenciamento de Rede IP Simples (SNMP)—O Protocolo de Gerenciamento de Rede IP Simples provoca Alta Utilização de CPU

  • Atualizador de ADJ LC—O que Provoca Alta Utilização de CPU no Processo do Atualizador de Adjacências LC em um Roteador de Internet Cisco 12000 Series?

  • Cronômetro TCP — Seção Cronômetro TCP do documento Solução de Problemas de Alta Utilização de CPU devico a Processos

  • Fundo de TTY—Seção Fundo de TTY do documento Solução de Problemas de Alta Utilização de CPU devido a Processos

  • Virtual EXEC—Alta Utilização de CPU em processos Exec e Virtual Exec

  • Vtemplate Backgr — Seção Fundo de Modelo Virtual do documento Solução de Problema de Alta Utilização de CPU devido a Processos

  • Outros processos — Seção Outros Processos do documento Solução de Problemas de Alta Utilização de CPU devido a Processos

Comandos para Obtenção de Mais Informações

Esses comandos fornecem mais informações sobre o problema.

Se o roteador estiver completamente inacessível, reinicialize-o primeiro. Em seguida, periodicamente, colete a saída dos comandos acima, com exceção do comando show log, cujas mensagens devem ser registradas em um servidor syslog. O intervalo para coletar saída deve ser de cinco minutos. Você pode coletar os dados manual ou automaticamente, usando esse script shell UNIX. Você também pode coletar dados usando HTTP ou SNMP. Para obter detalhes sobre como configurar HTTP e SNMP em um roteador Cisco, consulte o documento Configuração do Software Cisco IOS.

O comando show processes cpu

Esse é um exemplo do cabeçalho do comando show processes cpu:

 CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W%
  PID  Runtime(ms)  Invoked  uSecs    5Sec   1Min   5Min TTY Process 

Esta tabela descreve os campos no cabeçalho:

Campo.

Descrição

X

A utilização total média durante os últimos cinco segundos (interrupções + processos)

Y

Utilização média devido a interrupções durante os últimos cinco segundos1

Z

Utilização total média durante o último minuto2

W

A utilização média total durante os últimos cinco minutos2

PID

ID de Processo

Runtime

O tempo da CPU usado pelo processo (em milissegundos)

Invocado

Número de vezes que o processo foi chamado

uSecs

Microssegundos de tempo da CPU para cada chamada

5Sec

Utilização da CPU por tarefa nos últimos 5 segundos

1Min

Utilização da CPU por tarefa nos últimos2 minutos

5Min

Utilização da CPU por tarefa nos últimos2 minutos

TTY

Terminal que controla o processo

Processo

Nome do processo

1Utilização de CPU no nível de processamento = X - Y

2 Os valores não representam uma média aritmética, mas uma média exponencialmente reduzida. Portanto, valores mais recentes têm mais influência na média calculada.

Use esse link, para obter uma explicação detalhada do comando show processes cpu .

Observação: A utilização total da CPU não deve ser usada como medida da capacidade do roteador de comutar mais pacotes. Nos roteadores Cisco 7500, os Processadores de Interface Versáteis (VIPs) e os Processadores de Rota/Switch (RSPs) não informam utilização linear de CPU. Aproximadamente a metade da capacidade de switching pacote por segundo é fornecida após 90 a 95% de utilização da CPU.

Comando show interfaces

As referências a comandos contém uma explicação detalhada do comando show interfaces .

Comando show interfaces switching

Esse comando é usado para determinar caminhos ativos de switching em interfaces. Para obter mais informações sobre caminhos de switching no software Cisco IOS, consulte o documento Configurando Caminhos de Switching.

Esse é um exemplo de saída do comando show interfaces switching para 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 

Como a saída lista os caminhos de switching de todos os protocolos configurados na interface, você pode facilmente ver que tipo e que quantidade de tráfego está passando pelo roteador. Essa 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 havia nenhuma entrada no cache de switching rápida.

Falhas de cache

Pacotes para os quais não havia entrada no cache de switching rápido. O primeiro pacote deste destino (ou fluxo – depende do tipo de switching rápido que estiver configurado) será processado. Todos os pacotes subseqüentes serão comutados rapidamente, a menos que o switching rápido seja explicitamente desabilitado na interface de saída.

Rápida

Pacotes comutados rapidamente. O switching rápido é habilitado por padrão.

Auton/SSE

Pacotes comutados pelo switch autônomo ou de silício, ou pacotes comutados distribuídos. Disponível apenas nos Cisco 7000 Series Routers com um Switch Processor ou Silicon Switch Processor (para switching autônomos ou de silício, respectivamente) ou nos Cisco 7500 Series Routers com um VIP (para switching distribuídos).

Comando show interfaces stat

Esse comando é uma versão resumida do comando show interfaces switching. Este é o exemplo de saída de uma interface:

 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 

A saída do comando show interfaces stat é diferente para diferentes plataformas, dependendo dos caminhos de switching configurados e disponíveis.

conversões show ip nat

O comando show ip nat translations exibe as conversões NAT (Conversão de Endereço de Rede) ativas no roteador. Cada conversão ativa gera interrupções da CPU e tem impacto na utilização total de CPU do roteador. Um número muito grande de conversões pode ter um impacto no desempenho do roteador.

Esse é um exemplo de saída do comando show ip nat translations:

     router#show ip nat translations
     Pro Inside global    Inside local    Outside local    Outside global
     --- 172.16.131.1     10.10.10.1      ---              ---

Comando show align

Este comando está disponível somente em plataformas baseadas em processador de RISC (Computação de conjunto de instruções reduzido). Nessas plataformas, a CPU pode corrigir leituras ou gravações em memórias mal alinhadas. Esse é o mesmo exemplo de saída:

 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 

Comando show version

Com o fim de rastrear problemas de elevada utilização do CPU, a parte importante dessa saída de comando são a versão de Software Cisco IOS, a plataforma, o tipo de CPU e o período operacional do roteador. As Referências a Comandos fornece uma explicação detalhada do comando show version .

Comando show log

Este comando mostra o conteúdo das mensagens de registro no buffer. Para obter mais informações sobre as mensagens do sistema de registro, consulte a seção Mensagens de Erro do Sistema de Registro do guia de configuração Solução de Problemas do Roteador.

Script de shell do UNIX para Coletar Dados Periodicamente

Este apêndice descreve um script simples para capturar dados periodicamente a partir do roteador. O centro do script está nesta linha:

  (echo "show version") | telnet 192.168.1.1

O comando entre parênteses é executado em sub-shell e a saída é enviada para uma sessão Telnet. Esse é um exemplo de script para captura da saída dos comandos show version e show processes cpu:

     #!/opt/local/bin/bash

     ###########################################
     # Router's IP address
     #
     IP_ADDRESS='10.200.40.53'


     # Directory where the log files will 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 

Observação: Nesse script, todos os dados, incluindo a senha, são enviados em um formato claro de texto.

Na primeira seção, você precisa especificar o endereço IP e o diretório de destino de arquivos de registro. A segunda seção contém os comandos reais que são enviados ao roteador. O primeiro é o nome do usuário, em seguida a senha, e assim por diante. Um truque para a captura apenas das primeiras linhas de saída de determinados comandos está incluído. O comprimento do terminal é definido como um valor pequeno (15, neste caso), e o caractere "q" só é enviado quando solicitado.

Se os dados forem coletados periodicamente, a saída do comando show version mostra se o problema tem natureza periódica, por exemplo, se ele aparece sempre em uma determinada hora do dia ou em um dia específico da semana. Se você precisar coletar a saída de mais comandos, eles serão adicionados ao script da mesma maneira que os mostrados no exemplo. Se você precisar truncar a saída enviada ao arquivo, primeiro aumente o período de inativação (o comando sleep entre parênteses).

Execute esse script a cada cinco minutos, se o problema de alta utilização de CPU aparecer com freqüência e não durar muito tempo. Caso contrário, você poderá executá-lo a cada 15 ou 30 minutos. Para facilidade de uso, salve o script em um arquivo, como /usr/bin/router-script. Em seguida, para executá-lo a cada cinco minutos, adicione a seguinte linha ao arquivo /etc/crontab:

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

Reinicie o servidor cron. Se você não tiver autoridade para alterar o arquivo /etc/crontab, execute o script em um processo separado, como este:

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

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 15095