Este documento explica os motivos para alta utilização da CPU devido a interrupções e fornece dicas e orientações para Troubleshooting.
Não existem requisitos específicos para este documento.
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. 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.
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 a qualquer momento em que um caractere sai 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 inapropriado é configurado 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)
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á ativado 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 habilitado 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 realmente são 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 for esse o caso, consulte a página de solução de problemas do 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. Observe o número de novos fluxos por segundo.
Se o Cisco Express Forwarding não estiver habilitado, ative o Cisco Express Forwarding para acelerar a decisão de switching.
Se não houver listas de acesso longas, tente desativar a comutação NetFlow.
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 tornará muito intensivo da CPU. Para solucionar esse tipo de erro, consulte Troubleshooting de Acessos Spurgos, Erros de Alinhamento e Interrupções Spurosas.
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.
Emita o comando terminal length 0.
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, em que seconds representa o tempo durante o qual os dados são usados para calcular as 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. Eles mostram o número de vezes que o receptor na porta foi desabilitado, 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.
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 sobrecarregadas com tráfego, considere reprojetar o fluxo de tráfego na rede ou atualizar o hardware.
O loop de rede também pode ser um motivo para a sobrecarga de tráfego. Verifique a topologia da rede.
Se houver a possibilidade de que um único dispositivo esteja gerando pacotes a uma taxa extremamente alta e, portanto, sobrecarregando o roteador, você pode 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 for encontrado, o endereço IP correspondente poderá ser encontrado verificando a saída do comando show ip arp.
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 um bug que relata sintomas semelhantes em um ambiente semelhante.
Mesmo que não haja tráfego, o software continua a monitorar a sinalização associada ao canal (CAS), que usa recursos da CPU.
Mesmo que não haja tráfego, as interfaces ATM enviam uma célula nula (de acordo com os padrões ATM) e continuam a usar os recursos da CPU.
Quando o PXF apontar muitos pacotes no RP, o RP poderá ficar sobrecarregado. Você pode comparar a quantidade de pacotes pontuados com a quantidade total de pacotes recebidos 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.
O perfil da CPU é uma forma de baixo custo de determinar onde a CPU gasta seu tempo. O sistema funciona com a amostragem do local do processador a cada quatro milissegundos. A contagem para esse local na memória é incrementada. A causa raiz dessa utilização da CPU será determinada pelo perfil da CPU.
Conclua estes passos para executar o perfil da CPU. A utilização da CPU será feita quando você estiver experimentando uma alta utilização da CPU.
Observação: todos esses comandos devem ser digitados quando estão no modo de ativação
Capture a saída de show region e pegue o endereço inicial, o endereço final e o tamanho da região main:text
Capture a saída de show memory statistics e verifique o tamanho do maior bloco na memória do processador.
Interromper a tarefa do perfil para configurar o perfil somente para interrupções.
Compare o tamanho da região main:text com o tamanho do maior bloco de memória livre de processador. O ideal é que o maior bloco seja maior que o principal:texto.
Se o bloco maior for menor que o tamanho principal:texto, ajuste a granularidade para garantir que a criação de perfis seja capaz de obter um bloco de memória do processador.
Se o bloco maior for maior que a região principal:texto, use uma granularidade de 4.
Se o bloco maior for maior que a metade da região principal:texto, use uma granularidade de 8.
Se o bloco maior for maior que um quarto da região principal:texto, use uma granularidade de 10 ( 16 em hexadecimal).
Nota: Granularidade deve ser uma potência de 2 e deve ser o menor possível (mas não menor que 4)
Comece a criar perfis fazendo o perfil
Profile <starting address> <ending address> <granularity value>
O endereço inicial e final são determinados a partir da Etapa 1.
Aguarde de 5 a 10 minutos
Parar a criação de perfis fazendo a parada de perfil
Capture a saída de show profile terse.
Certifique-se de que a memória esteja liberada, fazendo unprofile all (não criar perfil em todas)
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 Comutação.
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 a 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 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). |
Este script salva as saídas na 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"
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
29-May-2008 |
Versão inicial |