Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Alta utilização da CPU causada pelo processo SNMP ENGINE

Rotas grandes e/ou tabelas ARP eleitas pela estação do NMS

Eleição de determinados MIBs

Informações Relacionadas

Discussões relacionadas da comunidade de suporte da Cisco

Introduction

Este documento explica como resolver problemas de utilização elevada da CPU em um roteador devido ao processo do ENGINE de SNMP que é executado no roteador, especialmente em roteadores de baixa qualidade.

Prerequisites

Requirements

Os leitores deste documento devem estar cientes destes tópicos:

- SNMP

- Cisco IOS

Componentes Utilizados

As informações neste documento são baseadas em roteadores que executam o Cisco IOS® Software.

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.

Conventions

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

Alta utilização da CPU causada pelo processo SNMP ENGINE

Às vezes, mensagens como essa podem aparecer no console do roteador:

%SNMP-3-CPUHOG: Processing [chars] of [chars]

Significa que o agente SNMP no dispositivo levou muito tempo para processar uma solicitação.

Você pode determinar a causa do alto uso da CPU em um roteador pelo resultado do comando exibir cpu do processo.

O exemplo a seguir mostra a saída do comando show process cpu.

cacuk#show process cpu

CPU utilization for five seconds: 0%/0%;

one minute: 0%;

five minutes: 0%

PID

Tempo de execução (ms)

Chamado

uSecs

5Sec

1min

5Min

TTY

Processo

1

68

258816

0

0.00%

0.00%

0.00%

0

Medidor de carga

2

0

1

0

0.00%

0.00%

0.00%

0

OSPF Hello

3

788132

131480

5994

0.00%

0.00%

0.00%

0

Verificar preenchimentos

4

0

1

0

0.00%

0.00%

0.00%

0

Gerenciador de Chunk

5

56

131

427

0.00%

0.00%

0.00%

0

Gerenciador do conjunto

69

202700

421730

480

0.00%

0.01%

0.00%

0

IP SNMP

71

1193648

211250

5650

0.00%

0.19%

0.15%

0

SNMP ENGINE

O comando debug snmp verifica quais IDs de Objeto (OIDs) ou Base de Informações de Gerenciamento (MIBs) estão sendo consultados no momento.

Observação: a execução de uma depuração em uma rede de produção pode sobrecarregar o roteador.

Existem duas causas prováveis para a utilização elevada de CPU em relação ao protocolo SNMP:

1. Rota grande e/ou tabelas ARP sendo pesquisadas pela estação NMS

2. Eleição de determinados MIBs

Rotas grandes e/ou tabelas ARP eleitas pela estação do NMS

A estação de gerenciamento de rede consulta os roteadores de toda a tabela de rotas para aprender sobre outras redes. Ele usa essas informações para localizar outros roteadores e consultá-los sobre seu conhecimento de redes ao redor deles. Dessa forma, a estação de gerenciamento pode aprender a topologia de toda a rede.

O roteador armazena a tabela de rotas em um formato hash, mais propício para pesquisas rápidas de rotas. No entanto, as respostas SNMP para a rota devem ser retornadas em ordem lexicográfica por RFC1213. Portanto, para cada solicitação de SNMP que o roteador receber, a tabela de hash deve ser organizada lexicograficamente para poder criar um PDU de resposta de SNMP. Quanto maior a tabela de rotas, mais intensa é a CPU.

O SNMP é um processo de baixa prioridade no que diz respeito ao programador da CPU, portanto, outro processo que requer recursos da CPU tem prioridade. Portanto, embora os picos de CPU ocorram nesse cenário, eles não devem afetar o desempenho.

Recomendação 1: Usar os comandos snmp-server view

Para evitar problemas de desempenho, force o roteador a encerrar prematuramente consultas para a tabela de rotas a partir do servidor do sistema de gerenciamento de redes. Configure o roteador para responder com uma mensagem completa assim que receber o início de uma solicitação para a tabela de rotas, como a seguir:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown 1.3.6.1.2.1.3 excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Cuidado: No exemplo acima, snmpUsmMIB é excluído, snmpVacmMIB é excluído e snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que esses objetos sejam excluídos da visualização em qualquer dispositivo que possa ser acessado por usuários públicos.

Essa configuração bloqueia as solicitações para a recuperação da tabela de rota (ipRouteTable) e da tabela de Address Resolution Protocol (ARP) (ipNetToMediaTable), mas aprova todas as outras solicitações. Se você tiver versões mais antigas do software Cisco IOS®, ele não reconhecerá o objeto MIB ipRouteTable, então use a seguinte configuração:

snmp-server view cutdown iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view cutdown 1.3.6.1.2.1.4.21 excluded

snmp-server view cutdown 1.3.6.1.2.1.4.22 excluded

snmp-server view cutdown at excluded

snmp-server view cutdown 1.3.6.1.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view cutdown 1.3.6.1.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community public view cutdown RO

snmp-server community private view cutdown RW

Cuidado: No exemplo acima, snmpUsmMIB é excluído, snmpVacmMIB é excluído e snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que esses objetos sejam excluídos da visualização em qualquer dispositivo que possa ser acessado por usuários públicos.

Em ambos os exemplos, você pode substituir suas próprias strings de comunidade.

O resultado dessas configurações é que o roteador não retorna mais a tabela ARP ou a tabela de rotas IP quando consultado. Isso impede que as descobertas da rede SNMP criem estacas de CPU no roteador em questão, mas também remove um grau de capacidade de gerenciamento do roteador.

Roteadores que anteriormente não estavam exibindo picos de CPU podem começar a fazer isso caso haja uma alteração na tabela de roteamento. A quantidade de ciclos necessários para responder às solicitações da tabela de IP Routing é uma função do número de rotas na tabela de roteamento. Se o número de rotas aumentar, a utilização da CPU também aumenta.

Recomendação 2: Ligar CEF

Uma alteração foi feita no código do Cisco IOS para permitir que o SNMP consulte a tabela Cisco Express Forwarding (CEF) para entradas de roteamento se a comutação CEF for usada. Isso melhora significativamente a situação. Com o CEF ativado, o agente SNMP responde a uma operação get-next/get-bulk para o roteamento ou tabelas ARP com informações da Base de Informações de Encaminhamento (FIB). O FIB é armazenado em ordem lexicográfica e nenhuma classificação é necessária. Sem o CEF habilitado, o agente SNMP responde com informações do Routing Information Base (RIB), que deve ser classificado em ordem lexicográfica, causando alta CPU.

Siga o link de ID de bug abaixo e consulte as informações detalhadas sobre o bug.

CSCdk54265 (somente clientes registrados) - O HOG da CPU é gerado quando a tabela de roteamento de polling via SNMP da estação de gerenciamento de rede.

Eleição de determinados MIBs

Os aplicativos de gerenciamento de rede frequentemente recuperam informações de dispositivos que usam SNMP. Um exemplo seria o Resource Manager Essentials (RME), um aplicativo no conjunto de produtos CiscoWorks 2000. O RME pode recuperar informações da flash definidas no CISCO-FLASH-MIB. Se o dispositivo tiver um disco flash ATA, ele pode fazer com que a utilização da CPU salte.

Siga o link de ID de bug abaixo e consulte as informações detalhadas sobre o bug.

CSCdt97325 (apenas clientes registrados)

Para verificar e aplicar a solução, siga estas etapas:

1. Verifique se o dispositivo tem uma placa flash ATA em um de seus slots:

Router#show disk1:

******** ATA Flash Card Geometry/Format Info ********

ATA CARD GEOMETRY

Number of Heads:        12

Number of Cylinders     906

Sectors per Cylinder    63

Sector Size             512

Total Sectors           684936

ATA CARD FORMAT

Number of FAT Sectors  84

Sectors Per Cluster    32

Number of Clusters     21372

Number of Data Sectors 684117

Base Root Sector       169

Base FAT Sector        1

Base Data Sector       201

Router#

Se não tiver certeza ou se não obtiver a saída do comando show diskX, execute o comando show tech e procure o disco.

2. Depois de saber que você tem um disco Flash ATA, você pode aplicar a seguinte solução para evitar as consultas SNMP no FLASH-MIB:

Router(config)#snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

Router(config)#snmp-server view

ciscoFlashMIB excluded

!--- The additional object snmpUsmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.15 excluded

!--- The additional object snmpVacmMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.16 excluded

!--- The additional object snmpCommunityMIB is excluded.

Router(config)#snmp-server view

1.3.6.1.6.3.18 excluded

Router(config)#snmp-server community

view

ro

Router(config)#snmp-server community

view

rw

Router(config)#exit

Router#

Observação: escolha a mesma palavra em cada linha para <any_word> na configuração acima.

Cuidado: No exemplo acima, snmpUsmMIB é excluído, snmpVacmMIB é excluído e snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que esses objetos sejam excluídos da visualização em qualquer dispositivo que possa ser acessado por usuários públicos.

3. Verifique se está corretamente implementado:

Router#show run

...

snmp-server view

iso included

!--- ISO is used as a starting point as it is the snmp 'root'.

snmp-server view

ciscoFlashMIB excluded snmp-server view

internet.6.3.15 excluded

!--- The additional object snmpUsmMIB is excluded.

snmp-server view

internet.6.3.16 excluded

!--- The additional object snmpVacmMIB is excluded.

snmp-server view

internet.6.3.18 excluded

!--- The additional object snmpCommunityMIB is excluded.

snmp-server community

view

RW snmp-server community

view

RO

Observação: <any_word>, <write_community_string> e <read_community_string> são as que estão na configuração.

Cuidado: No exemplo acima, snmpUsmMIB é excluído, snmpVacmMIB é excluído e snmpCommunityMIB é excluído. Juntos esses objetos podem ser utilizados para obter informações sobre usuários configurados e séries de comunidade para obter acesso administrativo para o dispositivo. Recomenda-se que esses objetos sejam excluídos da visualização em qualquer dispositivo que possa ser acessado por usuários públicos.

4. Emita o comando show proc cpu para verificar se o CPU-Util para SNMP cai e procure o processo IP_SNMP.

Observação: o bug CSCdt97325 também foi corrigido em algumas versões posteriores do Cisco IOS, portanto, verifique o bug para obter detalhes.

Outros bugs relacionados à eleição de MIBs:

Siga os links de ID de bug da Cisco abaixo e consulte informações detalhadas sobre bugs.

- CSCdm67427 (somente clientes registrados) - A pesquisa na subinterface ATM retorna a mensagem CPU HOG do dispositivo.

- CSCdu63734 (somente clientes registrados) - A MIB Flash faz muitas chamadas para o ifs.

- CSCdu48652 (somente clientes registrados) - A consulta de MIB em Flash interrompe as chamadas de voz no 7200.

- CSCds53368 (somente clientes registrados) - Problemas com o objeto ciscoFlashPartitionEntry em CISCO-FLASH-MIB.

- CSCdu55091 (somente clientes registrados) - 2500 snmpgetnext para determinados objetos SNMP causa o rastreamento de volta.

- CSCdx54836 (somente clientes registrados) - A pesquisa de SNMP em MIB Flash causa alta utilização de cpu no switch.

Informações Relacionadas

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

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