Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Sintomas de grande utilização da CPU

Solucionar problema da utilização elevada da CPU

Determine as causas e solucione o problema

Grande utilização de CPU devido a interrupções

Alta utilização da CPU ao ativar o Netflow NDE no roteador Cisco 7600 Series

Grande utilização de CPU devido a processos

PCI e pools de memória FAST mostram utilização muito alta

%SNMP-4-HIGHCPU: o processo excede o limite de [dec]ms ([dec]ms IOS quantum) para [chars] de [chars] — resultado [chars]

Alta utilização da CPU devido à criptografia de software

Alta utilização da CPU devido à fragmentação

Comandos para obter mais informações

O comando show processes cpu

O comando show interfaces

O comando show interfaces switching

O comando show interfaces stat

O comando show ip nat translations

O comando show align

O comando show version

O Comando show log

Scripts EEM para coleta automática de dados em condições de alta utilização da CPU

Exemplo de script EEM com o SNMP OID

Exemplo de script EEM com as mensagens de notificação de limite de CPU

Exemplo de script EEM para iniciar/parar o perfil da CPU

Script UNIX Shell para Coleta de Dados Periódica

Informações Relacionadas

Introduction

Este documento descreve sintomas e causas comuns de alta utilização da CPU em roteadores Cisco e fornece diretrizes e soluções para problemas comuns.

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Roteadores Cisco

- Caminhos de switching do software Cisco IOS®

Para obter mais informações sobre os caminhos de switching do software Cisco IOS, consulte Conceitos básicos de ajuste de desempenho.

Componentes Utilizados

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

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. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Sintomas de grande utilização da CPU

Esta lista descreve os sintomas comuns de utilização elevada da CPU. Se você observar qualquer um desses sintomas, solucione o problema com as etapas fornecidas neste documento.

- Altas porcentagens no  show processes cpu  Saída do comando.

Se você tiver a saída de um comando show processes cpu no dispositivo da Cisco, é possível utilizar o Cisco CLI Analyzer para exibir os possíveis problemas e correções.

Observação: para usar o Cisco CLI Analyzer, você deve ser um usuário registrado da Cisco, estar conectado e ter 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

- Muitas falhas de buffer

Solucionar problema da utilização elevada da CPU

Depois que você observar qualquer um dos sintomas no Sintomas de alta utilização da CPU :

- Veja se há um possível problema de segurança. Normalmente, a alta utilização da CPU é causada por um problema de segurança, como um worm ou vírus operando em sua rede. Essa é a causa mais provável se não tiverem sido feitas alterações recentes na rede. Geralmente, uma alteração de configuração, quando você adiciona linhas adicionais às suas listas de acesso, pode atenuar os efeitos desse problema. Os avisos e as diretrizes de segurança do produto da Cisco contêm informações sobre a detecção das causas mais prováveis e as alternativas específicas.

Para obter informações adicionais, consulte:

- 100 perguntas e respostas sobre ameaças da Internet

- Consultivos e alertas de segurança de produto Cisco

- Controle a ameaças da Cisco

- Certifique-se de todos  debug  no roteador são desativados com o comando undebug all or no debug all  comandos.

- Você pode emitir  show comandos no roteador? Em caso afirmativo, comece a coletar mais informações imediatamente, com esses  show comandos.

- O roteador está inacessível? É possível reproduzir esse problema? Em caso afirmativo, desligue e ligue novamente o roteador e, antes de reproduzir o problema, configure o  scheduler interval 500  comando. 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 Cisco 7200 e Cisco 7500 Series Routers, use o comando  scheduler allocate 3000 1000  comando.

- O roteador mostra sintomas de alto uso da CPU em intervalos breves ou imprevisíveis? Em caso afirmativo, recolher periodicamente a  show processes cpu  , que mostra se a alta utilização da CPU é causada por interrupções ou por um determinado processo. Use esse script UNIX e, com base no que você encontrar primeiro, modifique o script para coletar dados necessários para uma investigação mais detalhada do problema.

Determine as causas e solucione o problema

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

Grande utilização de CPU devido a interrupções

Para obter mais informações, consulte Solução de problemas de alta utilização da CPU provocada por interrupções. Se o nível da CPU aumentar devido a interrupções, provavelmente devido aos pacotes de switching CEF, ele não afeta o desempenho do roteador.

Alta utilização da CPU ao ativar o Netflow NDE no roteador Cisco 7600 Series

Se o NetFlow estiver configurado para a versão 7, o fluxo será executado pelo processador de roteamento, o que pode causar alta utilização da CPU.

Para solucionar problemas de alta utilização da CPU devido ao NetFlow versão 7, configure mls nde sender versão 5, pois a exportação do NetFlow é realizada pelo SP, que é o padrão para a versão 5 ou 9.

Grande utilização de CPU devido a processos

Verifique qual processo carrega a CPU. Uma atividade incomum relacionada a um processo resulta em uma mensagem de erro no registro. Por conseguinte, a produção dos show logging exec  deve ser verificado primeiro se há erros relacionados ao processo que consome muitos ciclos da CPU.

Você pode usar comandos debug para solucionar problemas de alta utilização da CPU nesses processos. Os comandos debug devem ser executados com extremo cuidado, pois podem aumentar ainda mais a utilização da CPU. Estes pré-requisitos devem ser atendidos para usar comandos debug com segurança:

- Todos os destinos de registro, exceto o registro de buffer, devem ser desativados ou seu nível de gravidade de registro deve ser reduzido de 7 (depuração) para 6 (informativo) ou menos, com o uso do  logging destination [ severity-level ]  configuration  comando. Para ver quais destinos de registro e níveis correspondentes estão ativados, leia as linhas de cabeçalho do show logging exec comando.

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

- Para poder ler e entender melhor as depurações, os carimbos de data e hora e de milissegundo devem ser habilitados. Para obter mais detalhes, consulte a descrição do service timestamps global configuration  comando.

Uma sessão de depuração de pacotes IP de amostra é fornecida em Solução de problemas de alta utilização da CPU nos processos de entrada de IP.

Para solucionar problemas de alta utilização da CPU em processos específicos, consulte:

- Entrada ARP — Seção Entrada ARP do documento Solução de Problemas de Alta Utilização da CPU devido a Processos.

- Roteador BGP—Alta utilização da CPU devido ao processo do roteador BGP seção do documento Troubleshooting de Alta Utilização da CPU causada pelo scanner BGP ou pelo processo do roteador BGP.

- Scanner BGP — Alta utilização da CPU devido à seção do scanner BGP do documento Solução de problemas de alta utilização da CPU causados pelo scanner BGP ou pelo processo do roteador BGP.

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

- Entrada de HyBridge—Solucionar Problemas de Alta Utilização de CPU causados pelo Processo de Entrada de HyBridge em Roteadores com Interfaces ATM.

- Entrada de IP — Solução de problemas de alta utilização da CPU devido ao processo de entrada de IP.

- Protocolo de Gerenciamento de Rede Simples (SNMP - Simple Network Management Protocol) - O Protocolo de Gerenciamento de Rede Simples (SNMP - Simple Network Management Protocol) IP Causa Alta Utilização da CPU.

- Atualizador de ADJ LC — O que causa a alta utilização da 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 da CPU devido a processos.

- Plano de fundo TTY — Seção Plano de fundo TTY do documento Solução de problemas de alta utilização da CPU devido a processos.

- EXEC Virtual — Veja o link para EXEC. Alta utilização de CPU em processos exec e virtual exec.

- Vtemplate Backgr — Seção Plano de Fundo do Modelo Virtual do documento Solução de Problemas de Alta Utilização de CPU devido aos Processos.

- Processo SSH—Pode aumentar se capturar um show tech ou uma depuração está habilitada.

- Outros processos — Seção Outros processos do documento, Solução de problemas de alta utilização da CPU devido aos processos.

PCI e pools de memória FAST mostram utilização muito alta

É normal observar pouca memória livre com pools de memória PCI e Fast. A memória PCI é usada para acesso à memória ao controlador GT64260 na placa principal PRP, para os barramentos PCI conectados a ele. Essa memória é usada para comunicação interna entre o controlador do sistema e outras peças, então ela parece estar ocupada o tempo todo.

Se for necessária mais memória, ela volta para a memória do pool de processador. A memória Fast é uma pequena quantidade de memória que tem sido reservada para uso pelas estruturas de dados do Interface Descriptor Block (IDB). Essa memória também é completamente reservada durante a inicialização, então sempre é mostrada como ocupada, pois é totalmente utilizada. Por causa disso, é normal observar pouca memória livre com o pool de memória Fast.

%SNMP-4-HIGHCPU: o processo excede o limite de [dec]ms ([dec]ms IOS quantum) para [chars] de [chars] — resultado [chars]

A mensagem de hog da CPU é semelhante a:

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

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

Uma nova mensagem de syslog (HIGHCPU) foi adicionada ao Cisco IOS na versão 12.4(13). Se um processo ocupa a CPU por mais de 200 ms, ele relata uma mensagem HIGHCPU. A mensagem HIGHCPU não afeta o roteador. Ela apenas permite que você saiba qual processo causou a alta utilização da CPU. A mensagem HIGHCPU é semelhante à mensagem CPUHOG, mas a mensagem HIGHCPU tem um limite de tolerância a falhas bem mais baixo, a 1/10 da quantidade de tempo, em comparação com uma mensagem CPUHOG, ou seja, medido em milissegundos. Nas versões anteriores à 12.4(13) do 2600, os processos eram executados por períodos mais longos, mas não geravam mensagens porque as versões do Cisco IOS não tinham esse aprimoramento.

A PDU de SNMP de processamento (consultas de objeto MIB) deve ser executada em uma única fatia de tempo (“time quantum”) de CPU para garantir que cada objeto da PDU seja recuperado como se fosse simultâneo. Isso é uma exigência fundamental imposta pelo protocolo SNMP padrão. Alguns objetos são agregados de muitos dados no sistema, portanto, mesmo sendo objetos únicos, há uma grande quantidade de processamento envolvido, devido à forma de instrumentação. Se eles não abandonarem a CPU, conforme exigido pelas regras de instrumentação do MIB, essa mensagem de erro poderá aparecer. Além disso, se você sonda vários objetos diferentes no mesmo grupo de objetos/tabela e recebe a mensagem de erro, isso não é incomum devido ao mesmo motivo.

Essa mensagem é usada para identificar objetos que usam mais tempo de CPU que o esperado (mas ainda não CPUHOG). Algumas ferramentas de NMS/instrumentação não funcionam bem durante a sondagem. Esse problema está documentado na ID de bug da Cisco CSCsl18139.

Observação: somente usuários registrados da Cisco têm acesso a ferramentas internas e informações de bug.

Alta utilização da CPU devido à criptografia de software

Quando não há módulo de criptografia de hardware instalado no dispositivo, todo o tráfego criptografado passa pelo dispositivo e deve ser criptografado pelo software. Isso ocupa muita CPU. Não é recomendável usar a criptografia de software para qualquer implantação de criptografia com um requisito de taxa de transferência razoável. Uma opção para resolver esse problema é reduzir o volume de tráfego criptografado (rotear novamente o tráfego ou limitar os fluxos criptografados). No entanto, a melhor maneira de solucionar esse problema é instalar um módulo de criptografia de hardware neste dispositivo, eliminando a necessidade de criptografia do software.

Observação: se você ativar os mapas de criptografia nas interfaces de túnel/físicas, isso causará o processo de consumo de memória e poderá causar um aumento na CPU.

Alta utilização da CPU devido à fragmentação

Os reagrupamentos podem aumentar muito a utilização da CPU, se ela precisar reagrupar um grande número de pacotes.

Para solucionar problemas de alta utilização da CPU devido à fragmentação, emita o comando tcp mss-adjust 1400 na interface que define o valor do tamanho máximo de segmento (MSS) dos pacotes de sincronização/início (SYN) do TCP que passam por um roteador.

Comandos para obter mais informações

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

- show processes cpu

- show interfaces

- show interfaces switching

- show interfaces stat

- show ip nat translations

- show align

- show version

- show log

Para obter mais detalhes sobre comandos show, consulte a Referência de Comandos do Cisco IOS Configuration Fundamentals.

Se o roteador é totalmente inacessível, desligue e ligue-o primeiro. Em seguida, colete periodicamente a saída dos comandos nesta seção, exceto para  show log  , cujas mensagens devem ser registradas em um Servidor syslog. O intervalo para coletar a saída deve ser de cinco minutos. Você pode coletar os dados manual ou automaticamente, com esse script de shell UNIX . Você também pode coletar dados com HTTP ou SNMP.

O show processes cpu  Comando

Este é um exemplo do cabeçalho do 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

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

Tempo de execução

O tempo da CPU usado pelo processo (em milissegundos)

Chamado

Número de vezes que um processo foi chamado

uSecs

Microssegundos de tempo da CPU para cada chamada

5Sec

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

1min

Utilização do CPU por tarefa nos últimos 2 minutos

5Min

Utilização da CPU por tarefa nos últimos cinco minutos 2

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.

Para obter detalhes, consulte o guia de referência de comandos show.

Observação: a utilização total da CPU não deve ser usada como uma medida da capacidade do roteador de comutar mais pacotes. Nos roteadores Cisco 7500, os processadores de interface versáteis (VIPs) e os processadores de roteamento/switch (RSP) não relatam a utilização linear da CPU. Aproximadamente a metade da capacidade de switching pacote por segundo é fornecida após 90 a 95% de utilização da CPU.

O show interfaces Comando

Esse comando é usado para determinar interfaces ativas.

O show interfaces switching  Comando

Esse comando é usado para determinar os caminhos de switching ativos nas interfaces.

Esta é uma saída de exemplo do  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

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 passa pelo roteador. A 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 - depende do tipo de switching rápida configurado) é processado. Todos os pacotes subsequentes são comutados rapidamente, a menos que a comutação rápida seja explicitamente desativada na interface de saída.

Rápido

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

Auton/SSE

Pacotes de switch autônomo, pacotes de switch de silício e pacotes de switch distribuídos. 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).

O  show interfaces stat  Comando

Esse comando é uma versão resumida do comando show interfaces switching  comando. 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 plataformas diferentes e depende dos caminhos de switching disponíveis e configurados.

O  show ip nat translations  Comando

O  show ip nat translations  exibe as conversões de Tradução de Endereço de Rede (NAT) ativas no roteador. Cada conversão ativa gera interrupções da CPU e afeta a utilização da CPU total do roteador. Um número muito grande de conversões pode afetar o desempenho no roteador.

Esta é uma saída de exemplo do  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      ---              ---

O  show align  Comando

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 as leituras ou gravações de memória que não se alinham. Veja um exemplo do resultado:

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

O  show version  Comando

Para rastrear problemas de alta utilização da CPU, as informações importantes a serem obtidas da saída do comando são a versão do Cisco IOS Software, a plataforma, o tipo de CPU e o tempo de atividade do roteador. A referência de comando fornece uma explicação detalhada desse comando.

O  show log  Comando

Este comando mostra o conteúdo das mensagens de registro no buffer.

Scripts EEM para coleta automática de dados em condições de alta utilização da CPU

O Gerenciador de Eventos Incorporado pode ser usado para coletar dados automaticamente quando ocorrer uma condição de alta utilização da CPU.  O EEM é acionado monitorando o SNMP OID para a utilização do processo ou monitorando as mensagens de syslog para a saída do comando de limite da CPU. Vários comandos show podem ser executados por meio do script EEM e a saída pode ser salva no sistema de arquivos.

Exemplo de script EEM com o SNMP OID

Esse script é executado quando a utilização do processo aumenta em torno de 85%.

Para obter mais informações, consulte Como Coletar a Utilização da CPU em Dispositivos Cisco IOS Utilizando 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

Exemplo de script EEM com as mensagens de notificação de limite de CPU

Uma combinação de EEM e o comando CPU threshold notifications pode disparar o script EEM. Neste exemplo, uma mensagem de syslog CPURISHINGTHRESHOLD é gerada quando a utilização aumenta mais de 85% para um intervalo de 5 segundos.  O script EEM pode disparar a mensagem do syslog e executar uma lista de comandos salvos em um arquivo no sistema de arquivos.

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

Exemplo de script EEM para iniciar/parar o perfil da CPU

O EEM é usado para iniciar/parar a criação de perfis da CPU, bem como registrar dados de vários comandos show. Consulte Solucionando Problemas de Alta Utilização da CPU Devido a Interrupções para obter mais informações.

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 UNIX Shell para Coleta de Dados Periódica

Este apêndice descreve um script simples que captura dados periodicamente do roteador. O centro do script está nesta linha:

(echo "show version") | telnet 192.168.1.1

O comando entre parênteses é executado em subgrupos shell e a saída é enviada para uma sessão Telnet. Este é um script de exemplo para capturar a saída do comando  show version  e  show processes cpu  comandos:

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

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

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 de usuário, depois a senha, e assim por diante. para capturar apenas as 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 de  show version  mostra se o problema tem uma 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 poderão ser adicionados ao roteiro da mesma forma mostrada 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 este script a cada cinco minutos se o problema de alta utilização da CPU aparecer com frequência e não durar muito. Caso contrário, você pode executar a cada 15 ou 30 minutos. Para mais 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 próxima 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 &

Informações Relacionadas

- Utilização elevada de CPU em Switches Catalyst 2900XL/3500XL

- Conceitos básicos de ajuste de desempenho

- Suporte técnico e downloads da Cisco