O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve a arquitetura de tratamento de pacotes da CPU e mostra como identificar as causas do alto uso da CPU nos switches Catalyst 4500.
Não existem requisitos específicos para este documento.
As informações neste documento são baseadas nestas versões de software e hardware:
Catalyst 4500 Series Switches
Catalyst 4948 Series Switches
Observação: este documento se aplica somente a switches baseados no Cisco IOS® Software.
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 rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Consulte as Convenções de dicas técnicas da Cisco para obter mais informações sobre as convenções do documento.
Os switches da série Catalyst 4500, que incluem os switches Catalyst 4948, têm uma metodologia sofisticada do processamento de pacotes para o tráfego limitado por CPU. Um problema normalmente percebido é a utilização elevada da CPU nestes switches. Este documento fornece detalhes sobre a arquitetura de processamento de pacotes pela CPU e mostra como identificar as causas da utilização elevada da CPU nestes switches. O documento também lista alguns cenários comuns de rede ou configuração que causam a utilização elevada da CPU na série Catalyst 4500
Antes de analisar a arquitetura de manipulação de pacotes da CPU e solucionar problemas de alta utilização da CPU, você deve entender as diferentes maneiras pelas quais os switches de encaminhamento baseado em hardware e os roteadores baseados em software Cisco IOS utilizam a CPU. É comum pensar equivocadamente que alta utilização da CPU indica o esgotamento dos recursos em um dispositivo e a ameaça de uma falha. O problema de capacidade é um dos sintomas de alta utilização da CPU nos roteadores Cisco IOS. No entanto, um problema de capacidade quase nunca é um sintoma de alta utilização da CPU com switches de encaminhamento baseados em hardware como o Catalyst 4500. O Catalyst 4500 foi projetado para encaminhar pacotes no ASIC (circuito integrado de aplicação específica) de hardware e atingir velocidades de encaminhamento de tráfego de até 102 milhões de pacotes por segundo (Mpps).
A CPU do Catalyst 4500 executa estas funções:
Gerencia protocolos de software configurados, por exemplo:
Routing Protocol
Cisco Discovery Protocol (CDP)
Port Aggregation Protocol (PAgP)
Protocolo VLAN Trunk (VTP)
Dynamic Trunking Protocol (DTP)
Configuração de programas/entradas dinâmicas para os ASICs de hardware, por exemplo:
Listas de controle de acesso (ACLs)
entradas de CEF
Gerencia internamente vários componentes, por exemplo:
Placas de linha Power over Ethernet (PoE)
Fontes de alimentação
Bandeja de ventoinha
Gerencia o acesso ao switch, por exemplo:
Telnet
Console
Simple Network Management Protocol
Encaminha pacotes pelo caminho do software, por exemplo:
Pacotes roteados pelo Internetwork Packet Exchange (IPX), que são suportados apenas no caminho do software
Fragmentação de unidade de transmissão máxima (MTU - Maximum Transmission Unit)
De acordo com essa lista, a alta utilização da CPU pode resultar do recebimento ou do processo de pacotes pela CPU. Alguns dos pacotes enviados para o processo podem ser essenciais para a operação da rede. Um exemplo desses pacotes essenciais são as BPDUs (Bridge Protocol Data Unit) para configurações de topologia spanning-tree. No entanto, outros pacotes podem ser tráfego de dados encaminhado por software. Esses cenários exigem que os ASICs de switching enviem pacotes à CPU para processamento:
Pacotes que são copiados para a CPU, mas os pacotes originais são comutados no hardware.
Um exemplo é o aprendizado do endereço MAC do host.
Pacotes enviados à CPU para processamento
Os exemplos incluem:
Atualizações do protocolo de roteamento
BPDUs
Inundação intencional ou não intencional de tráfego
Pacotes que são enviados para a CPU para encaminhamento
Um exemplo são os pacotes que precisam de roteamento IPX ou AppleTalk.
O Catalyst 4500 tem um mecanismo integrado de Qualidade de Serviço (QoS - Quality of Service) para diferenciar entre os tipos de tráfego destinados à CPU. O mecanismo faz a diferenciação com base nas informações dos pacotes da Camada 2 (L2)/Camada 3 (L3)/ Camada 4 (L4). O Supervisor Packet Engine tem 16 filas para lidar com vários tipos de pacotes ou eventos. A Figura 1 mostra essas filas. A Tabela 1 lista as filas e os tipos de pacotes que enfileiram em cada uma. As 16 filas permitem que o Catalyst 4500 enfileire os pacotes com base no tipo ou prioridade do pacote.
Figura 1 - O Catalyst 4500 usa várias filas de CPU
Tabela 1 - Descrição da fila do Catalyst 4500
Número da Fila | Nome da fila | Pacotes na fila |
---|---|---|
0 | Esmp | Pacotes ESMP1 (pacotes de gerenciamento interno) para ASICs de placa de linha ou outro gerenciamento de componente |
1 | Controle | Pacotes de plano de controle L2, como STP, CDP, PAgP, LACP2 ou UDLD3 |
2 | Aprendizado do host | Quadros com endereços MAC de origem desconhecidos que são copiados para a CPU para criar a tabela de encaminhamento de L2 |
3, 4, 5 | L3 Enc. Mais Alto,L3 Enc. Alto/Médio,L3 Enc. Baixo | Pacotes que devem ser encaminhados em software, como túneis GRE4 Se o ARP5 não for resolvido para o endereço IP de destino, os pacotes serão enviados para essa fila. |
6, 7, 8 | L2 Fwd Mais Alto,L2 Fwd Alto/Médio,L2 Fwd Baixo | Pacotes que são encaminhados como resultado de bridging
|
9, 10 | L3 Rx alto,L3 Rx baixo | Tráfego do plano de controle L3, por exemplo, protocolos de roteamento, que são destinados aos endereços IP da CPU. Exemplos incluem Telnet, SNMP e SSH8. |
11 | Falha de RPF | Pacotes multicast que falharam na verificação de RPF9 |
12 | ACL fwd(rastreamento) | Pacotes que são processados pelos recursos de rastreamento DHCP10, inspeção ARP dinâmica ou rastreamento IGMP11 |
13 | log ACL, unreach | Pacotes que atingem um ACE12com a palavra-chave ogou pacotes que foram descartados devido a uma negação em uma ACL de saída ou à falta de uma rota para o destino. Esses pacotes exigem a geração de mensagens ICMP inalcançáveis. |
14 | Processamento SW ACL | Pacotes que são lançados para a CPU devido à falta de recursos adicionais de hardware da ACL, como TCAM13, para ACL de segurança |
15 | Falha de MTU/Inválido | Pacotes que precisam ser fragmentados porque o tamanho de MTU da interface de saída é menor que o tamanho do pacote |
1ESMP = Protocolo de gerenciamento simples uniforme.
2LACP = Link Aggregation Control Protocol (Protocolo de Controle de Agregação de Links).
3UDLD = UniDirectional Link Detection (Detecção de link unidirecional).
4GRE = encapsulamento de roteamento genérico.
5ARP = Address Resolution Protocol (Protocolo de Resolução de Endereços).
6SVI = interface virtual comutada.
7TTL = Vida Útil.
8SSH = Secure Shell Protocol (protocolo de shell seguro).
9RPF = Encaminhamento de caminho reverso
10DHCP = Dynamic Host Configuration Protocol (Protocolo de configuração dinâmica de host).
11IGMP = Internet Group Management Protocol (Protocolo de Gerenciamento de Grupos Internet).
12ACE = entrada de controle de acesso.
13TCAM = memória ternária endereçável por conteúdo.
Essas filas são filas separadas:
L2 Fwd mais alto ouL3 Fwd mais alto
L2 Enc. Alta/Média ouL3 Enc. Alta/Média
Encaminhamento de L2 Baixa ou Encaminhamento de L3 Baixo
L3 Rx SuperiorL3 Rx Inferior
Os pacotes são enfileirados nessas filas com base no rótulo de QoS, que é o valor de DSCP (Differentiated Services Code Point, ponto de código de serviços diferenciados) do ToS (Type of Service, tipo de serviço) IP. Por exemplo, os pacotes com um DSCP de 63 são enfileirados na fila L3 Fwd Highestqueue. Você pode ver os pacotes que são recebidos e descartados para essas 16 filas na saída do comando show platform cpu packet statistics all. A saída desse comando é muito longa. Execute o comando show platform cpu packet statistics para mostrar apenas eventos diferentes de zero. Um comando alternativo é o comando show platform cpuport. Use o comando show platform cpuport somente se você executar o Cisco IOS Software Release 12.1(11)EW ou anterior. Este comando já foi preterido. No entanto, esse comando mais antigo fazia parte do comando show tech-supportnas versões do Cisco IOS Software anteriores ao Cisco IOS Software Release 12.2(20)EWA.
Use o comando show platform cpu packet statistics para todas as soluções de problemas.
Switch#show platform cpu packet statistics all !--- Output suppressed. Total packet queues 16 Packets Received by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- Esmp 0 0 0 0 0 Control 48 0 0 0 0 Host Learning 0 0 0 0 0 L3 Fwd High 0 0 0 0 0 L3 Fwd Medium 0 0 0 0 0 L3 Fwd Low 0 0 0 0 0 L2 Fwd High 0 0 0 0 0 L2 Fwd Medium 0 0 0 0 0 L2 Fwd Low 0 0 0 0 0 L3 Rx High 0 0 0 0 0 L3 Rx Low 0 0 0 0 0 RPF Failure 0 0 0 0 0 ACL fwd(snooping) 0 0 0 0 0 ACL log, unreach 0 0 0 0 0 ACL sw processing 0 0 0 0 0 MTU Fail/Invalid 0 0 0 0 0 Packets Dropped by Packet Queue Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg ---------------------- --------------- --------- --------- --------- ---------- Esmp 0 0 0 0 0 Control 0 0 0 0 0 Host Learning 0 0 0 0 0 L3 Fwd High 0 0 0 0 0 L3 Fwd Medium 0 0 0 0 0 L3 Fwd Low 0 0 0 0 0 L2 Fwd High 0 0 0 0 0 L2 Fwd Medium 0 0 0 0 0 L2 Fwd Low 0 0 0 0 0 L3 Rx High 0 0 0 0 0 L3 Rx Low 0 0 0 0 0 RPF Failure 0 0 0 0 0 ACL fwd(snooping) 0 0 0 0 0 ACL log, unreach 0 0 0 0 0 ACL sw processing 0 0 0 0 0 MTU Fail/Invalid 0 0 0 0 0
A CPU do Catalyst 4500 atribui pesos às várias filas listadas na Tabela 1. A CPU atribui os pesos com base na importância, ou tipo, e com base na prioridade de tráfego, ou DSCP. A CPU atende a fila com base nos pesos relativos da fila. Por exemplo, se um pacote de controle, como uma BPDU, e uma solicitação de eco ICMP estiverem pendentes, a CPU atenderá primeiro o pacote de controle. Uma quantidade excessiva de tráfego de baixa prioridade ou menos importante não prioriza a CPU quanto à capacidade de processar ou gerenciar o sistema. Esse mecanismo garante que a rede esteja estável mesmo sob alta utilização da CPU. Essa capacidade da rede de permanecer estável é uma informação crítica que você deve entender.
Há outro detalhe de implementação muito importante do manuseio de pacotes da CPU do Catalyst 4500. Se a CPU já tiver atendido pacotes ou processos de alta prioridade, mas tiver mais ciclos de CPU sobressalentes por um determinado período, a CPU atenderá os pacotes de fila de baixa prioridade ou executará processos em segundo plano de baixa prioridade. A alta utilização da CPU como resultado do processamento de pacotes de baixa prioridade ou de processos em segundo plano é considerada normal porque a CPU tenta constantemente usar todo o tempo disponível. Dessa forma, a CPU se esforça para obter o máximo desempenho do switch e da rede sem comprometer a estabilidade do switch. O Catalyst 4500 considera a CPU subutilizada, a menos que a CPU seja usada a 100% para um único intervalo de tempo.
O Cisco IOS Software Release 12.2(25)EWA2 e posterior melhorou o mecanismo e a contabilidade de processamento de pacotes e processos da CPU. Portanto, use essas versões nas suas implantações do Catalyst 4500.
Agora que você compreende a arquitetura e o design de tratamento de pacotes da CPU do Catalyst 4500, ainda pode identificar por que a utilização da CPU do Catalyst 4500 está alta. O Catalyst 4500 tem os comandos e ferramentas necessários para identificar a causa raiz da alta utilização da CPU. Depois de identificar o motivo, os administradores podem executar uma destas ações:
Ação corretiva — Pode incluir alterações na configuração ou na rede, ou a criação de uma solicitação de serviço do Suporte Técnico da Cisco para análise adicional.
Nenhuma ação — O Catalyst 4500 funciona de acordo com a expectativa. A CPU exibe alta utilização da CPU porque o Supervisor Engine maximiza os ciclos da CPU para executar todos os trabalhos necessários de encaminhamento de pacotes de software e de segundo plano.
Identifique o motivo da alta utilização da CPU, mesmo que nenhuma ação corretiva seja necessária em todos os casos. A alta utilização da CPU pode ser apenas um sintoma de um problema na rede. Uma resolução da causa raiz desse problema pode ser necessária para reduzir a utilização da CPU.
A Figura 2 mostra a metodologia de identificação e solução de problemas a ser usada para identificar a causa raiz da alta utilização da CPU do Catalyst 4500.
Figura 2 - Metodologia de identificação e solução de problemas de alta utilização da CPU nos switches Catalyst 4500
As etapas gerais de Troubleshooting são:
Execute o comando show processes cpu para identificar os processos do Cisco IOS que consomem ciclos da CPU.
Execute o comando show platform health para identificar melhor os processos específicos da plataforma.
Se o processo altamente ativo for K2CpuMan Review, execute o comando show platform cpu packet statistics para identificar o tipo de tráfego que atinge a CPU.
Se a atividade não for devido ao processo de revisão K2CpuMan, ignore a Etapa 4 e vá para a Etapa 5.
Identifique os pacotes que chegam à CPU com o uso das ferramentas de identificação e solução de problemas para analisar o tráfego destinado à CPU, se necessário.
Um exemplo das ferramentas de solução de problemas a serem usadas é o SPAN (Switched Port Analyzer - Analisador de Porta Comutada) da CPU.
Revise este documento e a seção Troubleshooting de Alto Nível Comum de Utilização da CPU para obter informações sobre causas comuns.
Se você ainda não conseguir identificar a causa raiz, entre em contato com oSuporte Técnico da Cisco.
A primeira etapa importante é conhecer a utilização da CPU do switch para a configuração e a configuração da rede. Use o comando show processes cppara identificar a utilização de CPU no switch Catalyst 4500. A atualização contínua da utilização da CPU de linha de base pode ser necessária à medida que você adiciona mais configuração à configuração de rede ou à medida que o padrão de tráfego da rede muda.A Figura 2indica esse requisito.
Esta saída é de um Catalyst 4507R totalmente carregado. A CPU em estado estacionário é de cerca de 32 a 38 por cento, o que é necessário para executar as funções de gerenciamento para este switch:
Switch#show processes cpu CPU utilization for five seconds: 38%/1%; one minute: 32%; five minutes: 32% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 0 63 0 0.00% 0.00% 0.00% 0 Chunk Manager 2 60 50074 1 0.00% 0.00% 0.00% 0 Load Meter 3 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events !--- Output suppressed. 27 524 250268 2 0.00% 0.00% 0.00% 0 TTY Background 28 816 254843 3 0.00% 0.00% 0.00% 0 Per-Second Jobs 29 101100 5053 20007 0.00% 0.01% 0.00% 0 Per-minute Jobs 30 26057260 26720902 975 12.07% 11.41% 11.36% 0 Cat4k Mgmt HiPri 31 19482908 29413060 662 24.07% 19.32% 19.20% 0 Cat4k Mgmt LoPri 32 4468 162748 27 0.00% 0.00% 0.00% 0 Galios Reschedul 33 0 1 0 0.00% 0.00% 0.00% 0 Cisco IOS ACL Helper 34 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
A utilização da CPU em cinco segundos é expressa como:
x%/y%
O ex% representa a utilização total da CPU, andy% representa a CPU gasta no nível de interrupção. Ao solucionar problemas dos switches Catalyst 4500, concentre-se apenas na utilização total da CPU.
Este resultado do comando show processes mostra que há dois processos que usam a CPU: Cat4k Mgmt HiPriandCat4k Mgmt LoPri. Esses dois processos agregam vários processos específicos de plataforma que executam as funções de gerenciamento essenciais no Catalyst 4500. Esses processos processam o plano de controle, assim como os pacotes de dados que precisam ser comutados por software ou processados.
Para ver quais dos processos específicos da plataforma usam a CPU sob o contexto de Cat4k Mgmt HiPriandCat4k Mgmt LoPri, emita o comando show platform health.
Cada um dos processos específicos da plataforma tem uma utilização alvo/esperada da CPU. Quando esse processo está dentro do destino, a CPU executa o processo no contexto de alta prioridade. A saída do comando cpushow processes conta essa utilização em Cat4k Mgmt HiPri. Se um processo exceder a utilização de destino/esperada, ele será executado no contexto de baixa prioridade. A saída do comando cpushow processes conta essa utilização adicional em Cat4k Mgmt LoPri. Este Cat4k Mgmt LoPriis também é usado para executar processos em segundo plano e outros de baixa prioridade, como verificação de consistência e leitura de contadores de interface. Esse mecanismo permite que a CPU execute processos de alta prioridade quando necessário, e os ciclos ociosos da CPU que permanecem são usados para os processos de baixa prioridade. Exceder a meta de utilização da CPU em uma pequena quantidade, ou um pico momentâneo na utilização, não é uma indicação de um problema que precise ser investigado.
Switch#show platform health %CPU %CPU RunTimeMax Priority Average %CPU Total Target Actual Target Actual Fg Bg 5Sec Min Hour CPU Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09 GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15 S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14 Stub-JobEventSchedul 10.00 12.09 10 6 100 500 14 13 9 396:35 StatValueMan Update 1.00 0.22 1 0 100 500 0 0 0 6:28 Pim-review 0.10 0.00 1 0 100 500 0 0 0 0:22 Ebm-host-review 1.00 0.00 8 0 100 500 0 0 0 0:05 Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:01 Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:00 Acl-Flattener e 1.00 0.00 10 0 100 500 0 0 0 0:00 KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:39 KxAclPathMan update 2.00 0.00 10 0 100 500 0 0 0 0:00 KxAclPathMan reprogr 1.00 0.00 2 0 100 500 0 0 0 0:00 TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00 K2CpuMan Review 30.00 10.19 30 28 100 500 14 13 9 397:11 K2AccelPacketMan: Tx 10.00 2.20 20 0 100 500 2 2 1 82:06 K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00 K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00 K2AclCamMan stale en 1.00 0.00 10 0 100 500 0 0 0 0:00 K2AclCamMan hw stats 3.00 1.04 10 5 100 500 1 1 0 39:36 K2AclCamMan kx stats 1.00 0.00 10 5 100 500 0 0 0 13:40 K2AclCamMan Audit re 1.00 0.00 10 5 100 500 0 0 0 13:10 K2AclPolicerTableMan 1.00 0.00 10 1 100 500 0 0 0 0:38 K2L2 Address Table R 2.00 0.00 12 5 100 500 0 0 0 0:00 K2L2 New Static Addr 2.00 0.00 10 1 100 500 0 0 0 0:00 K2L2 New Multicast A 2.00 0.00 10 5 100 500 0 0 0 0:01 K2L2 Dynamic Address 2.00 0.00 10 0 100 500 0 0 0 0:00 K2L2 Vlan Table Revi 2.00 0.00 12 9 100 500 0 0 0 0:01 K2 L2 Destination Ca 2.00 0.00 10 0 100 500 0 0 0 0:00 K2PortMan Review 2.00 0.72 15 11 100 500 1 1 0 37:22 Gigaport65535 Review 0.40 0.07 4 2 100 500 0 0 0 3:38 Gigaport65535 Review 0.40 0.08 4 2 100 500 0 0 0 3:39 K2Fib cam usage revi 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib IrmFib Review 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib Vrf Default Ro 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib AdjRepop Revie 2.00 0.00 15 0 100 500 0 0 0 0:00 K2Fib Vrf Unpunt Rev 2.00 0.01 15 0 100 500 0 0 0 0:23 K2Fib Consistency Ch 1.00 0.00 5 2 100 500 0 0 0 29:25 K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21 K2FibAdjMan Host Mov 2.00 0.00 10 4 100 500 0 0 0 0:00 K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00 K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04 K2FibMulticast Entry 2.00 0.00 10 7 100 500 0 0 0 0:00 K2FibMulticast Irm M 2.00 0.00 10 7 100 500 0 0 0 0:00 K2FibFastDropMan Rev 2.00 0.00 7 0 100 500 0 0 0 0:00 K2FibPbr route map r 2.00 0.06 20 5 100 500 0 0 0 16:42 K2FibPbr flat acl pr 2.00 0.07 20 2 100 500 0 0 0 3:24 K2FibPbr consolidati 2.00 0.01 10 0 100 500 0 0 0 0:24 K2FibPerVlanPuntMan 2.00 0.00 15 4 100 500 0 0 0 0:00 K2FibFlowCache flow 2.00 0.01 10 0 100 500 0 0 0 0:23 K2FibFlowCache flow 2.00 0.00 10 0 100 500 0 0 0 0:00 K2FibFlowCache adj r 2.00 0.01 10 0 100 500 0 0 0 0:20 K2FibFlowCache flow 2.00 0.00 10 0 100 500 0 0 0 0:06 K2MetStatsMan Review 2.00 0.14 5 2 100 500 0 0 0 23:40 K2FibMulticast MET S 2.00 0.00 10 0 100 500 0 0 0 0:00 K2QosDblMan Rate DBL 2.00 0.12 7 0 100 500 0 0 0 4:52 IrmFibThrottler Thro 2.00 0.01 7 0 100 500 0 0 0 0:21 K2 VlanStatsMan Revi 2.00 1.46 15 7 100 500 2 2 1 64:44 K2 Packet Memory Dia 2.00 0.00 15 8 100 500 0 1 1 45:46 K2 L2 Aging Table Re 2.00 0.12 20 3 100 500 0 0 0 7:22 RkiosPortMan Port Re 2.00 0.73 12 7 100 500 1 1 1 52:36 Rkios Module State R 4.00 0.02 40 1 100 500 0 0 0 1:28 Rkios Online Diag Re 4.00 0.02 40 0 100 500 0 0 0 1:15 RkiosIpPbr IrmPort R 2.00 0.02 10 3 100 500 0 0 0 2:44 RkiosAclMan Review 3.00 0.06 30 0 100 500 0 0 0 2:35 MatMan Review 0.50 0.00 4 0 100 500 0 0 0 0:00 Slot 3 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 3 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 4 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 4 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 5 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 5 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 6 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 6 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 7 ILC Manager R 3.00 0.00 10 0 100 500 0 0 0 0:00 Slot 7 ILC S2wMan Re 3.00 0.00 10 0 100 500 0 0 0 0:00 EthHoleLinecardMan(1 1.66 0.04 10 0 100 500 0 0 0 1:18 EthHoleLinecardMan(2 1.66 0.02 10 0 100 500 0 0 0 1:18 EthHoleLinecardMan(6 1.66 0.17 10 6 100 500 0 0 0 6:38 ------------- %CPU Totals 212.80 35.63
O comando show platform health fornece muitas informações que são relevantes apenas para um engenheiro de desenvolvimento. Para solucionar problemas de alta utilização da CPU, procure um número maior na coluna%CPU real na saída. Além disso, certifique-se de olhar o lado direito dessa linha para verificar o uso da CPU desse processo nas colunas de 1 minuto e 1 hora de média %CPU. Às vezes, os processos atingem o pico momentaneamente, mas não mantêm a CPU por muito tempo. Parte da alta utilização momentânea da CPU acontece durante a programação de hardware ou a otimização da programação. Por exemplo, um pico de utilização da CPU é normal durante a programação de hardware de uma ACL grande no TCAM.
Na saída do comando show platform health na seçãoEntender o comando show processes cpu nos Switches Catalyst 4500, os processos Stub-JobEventSchedule K2CpuMan Reviewusam um número maior de ciclos de CPU.A Tabela 2fornece algumas informações básicas sobre os processos comuns específicos de plataformas que aparecem na saída do comando show platform health.
Tabela 2 - Descrição dos processos específicos da plataforma do comando show platform health
Nome do processo específico da plataforma | Descrição |
---|---|
Revisão Pim | Gerenciamento do estado do chassi/placa de linha |
Ebm | Módulo de bridge Ethernet, como envelhecimento e monitoramento |
Acl-Flattener/K2AclMan | Processo de mesclagem de ACL |
KxAclPathMan - PathTagMan- Revisão | Gerenciamento e manutenção do estado da ACL |
Revisão do K2CpuMan | O processo que executa o encaminhamento de pacotes de software. Se você observar alta utilização da CPU devido a esse processo, investigue os pacotes que chegam à CPU com o uso do comando show platform cpu packet statistics. |
K2AccelPacketMan | O driver que interage com o mecanismo de pacote para enviar pacotes destinados da CPU |
K2AclCamMan | Gerencia o hardware TCAM de entrada e saída para QoS e recursos de segurança |
HomemTabelaDePoliciamentoDoK2AC | Gerencia os vigilantes de entrada e saída |
K2L2 | Representa o subsistema de encaminhamento de L2 do Cisco IOS Software do Catalyst 4500. Esses processos são responsáveis pela manutenção das várias tabelas de L2. |
Revisão do K2PortMan | Gerencia as várias funções de programação relacionadas à porta |
K2Fib | gerenciamento FIB1 |
K2FibFlowCache | gerenciamento de cache PBR2 |
K2FibAdjMan | Gerenciamento de tabela de adjacência FIB |
Multicast K2Fib | Gerencia entradas FIB multicast |
Revisão do K2MetStatsMan | Gerencia estatísticas MET3 |
Revisão de K2QosDblMan | Gerencia QoS DBL4 |
Thro IrmFibThrottler | módulo de roteamento IP |
Tabela de envelhecimento K2 L2 Re | Gerencia a função de envelhecimento de L2 |
GalChassisVp-revisão | Monitoramento do estado do chassi |
S2w-JobEventSchedule | Gerencia os protocolos S2W5 para monitorar o estado das placas de linha |
Stub-JobEventSchedule | Monitoração e manutenção de placa de linha com base em ASIC stub |
RkiosPortMan Port Re | Monitoramento e manutenção do estado da porta |
Estado Do Módulo Rkios R | Monitoramento e manutenção da placa de linha |
HomemCartãoDeLinhaDeOrifícioEth | Gerencia GBICs6 em cada uma das placas de linha |
1FIB = Forwarding Information Base (Base de informações de encaminhamento).
2PBR = roteamento baseado em política.
3MET = Tabela de expansão multicast.
4DBL = Limitação dinâmica de buffer.
5S2W = serial para cabo.
6GBIC = Gigabit Interface Converter.
Esta seção aborda alguns dos problemas comuns de alta utilização da CPU nos switches Catalyst 4500.
Uma das razões comuns para a alta utilização da CPU é que a CPU do Catalyst 4500 está ocupada com o processo de pacotes para pacotes encaminhados por software ou pacotes de controle. Exemplos de pacotes encaminhados por software são IPX ou pacotes de controle, como BPDUs. Um pequeno número desses pacotes é normalmente enviado para a CPU. No entanto, um número consistentemente grande de pacotes pode indicar um erro de configuração ou um evento de rede. Você deve identificar a causa dos eventos que levam ao encaminhamento de pacotes para a CPU para processamento. Essa identificação permite que você depure os problemas de alta utilização da CPU.
Algumas das razões comuns para a alta utilização da CPU devido a pacotes comutados por processo são:
Outras razões para a comutação de pacotes para a CPU são:
Fragmentação de MTU—Certifique-se de que todas as interfaces ao longo do caminho do pacote tenham a mesma MTU.
ACL com sinalizadores TCP diferentes dos estabelecidos
Roteamento IP versão 6 (IPv6)—Suportado apenas pelo caminho de switching de software.
GRE—Isso é suportado apenas através do caminho de switching de software.
Negação de tráfego na ACL de entrada ou saída do roteador (RACL)
Observação: essa taxa é limitada no Cisco IOS Software Release 12.1(13)EW1 e posterior.
Emita o comando no ip unreachable na interface da ACL.
O excesso de tráfego ARP e DHCP atinge a CPU para processamento devido a um grande número de hosts conectados diretamente
Se você suspeitar de um ataque DHCP, use o rastreamento DHCP para limitar a taxa de tráfego DHCP de qualquer porta de host específica.
Polling de SNMP excessivo por uma estação final legítima ou com comportamento incorreto
O Catalyst 4500 suporta 3000 instâncias de porta spanning-tree ou portas ativas no modo Per VLAN Spanning Tree+ (PVST+). O suporte está em todos os Supervisor Engines, exceto o Supervisor Engine II+ e II+TS e o Catalyst 4948. O Supervisor Engine II+ e II+TS e o Catalyst 4948 suportam até 1.500 instâncias de porta. Se você exceder essas recomendações de instância de STP, o switch exibirá alta utilização da CPU.
Este diagrama mostra um Catalyst 4500 com três portas de tronco que transportam VLANs de 1 a 100. Isso equivale a 300 instâncias de porta spanning-tree. Em geral, você pode calcular as instâncias de porta de spanning-tree com esta fórmula:
Total number of STP instances = Number of access ports + Sum of all VLANs that are carried in each of the trunks
No diagrama, não há portas de acesso, mas os três troncos transportam as VLANs de 1 a 100:
Total number of STP instances = 0 + 100 + 100 + 100 = 300
Etapa 1: Verifique o processo do Cisco IOS com show processes cpu o comando.
Esta seção analisa os comandos que um administrador usa para restringir o problema de alta utilização da CPU. Se você executar o comando show processes cpu, poderá ver que dois processos principais, Cat4k Mgmt LoPriandSpanning Tree, usam principalmente a CPU. Com apenas essas informações, você sabe que o processo spanning tree consome uma parte considerável dos ciclos da CPU.
Switch#show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 Cisco IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
!--- Output suppressed.
41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
Etapa 2: Verifique o processo específico do Catalyst 4500 com o comando show platform health.
Para entender qual processo específico da plataforma consome a CPU, execute o comando show platform health. A partir dessa saída, você pode ver que o processo de revisão K2CpuMan, um trabalho para lidar com pacotes vinculados à CPU, usa a CPU:
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Etapa 3: Verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Execute o
show platform cpu packet statisticscomando para verificar qual fila da CPU recebe o pacote vinculado à CPU. A saída nesta seção mostra que a fila de controle recebe muitos pacotes. Use as informações naTabela 1e a conclusão que você tirou naEtapa 1. Você pode determinar que os pacotes que a CPU processa e o motivo para a alta utilização da CPU é o processamento de BPDU.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 202760 196 173 128 28
Control 388623 2121 1740 598 16
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 17918 0 19 24 3
Etapa 4: Identifique a causa raiz.
Emita o
show spanning-tree summarycomando. Você pode verificar se o recebimento de BPDUs é devido a um número alto de instâncias de porta de spanning-tree. A saída identifica claramente a causa raiz:
Switch#show spanning-tree summary
Switch is in pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
!--- Output suppressed.
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
2994 vlans 0 0 0 5999 5999
Há um grande número de VLANs com a configuração do modo PVST+. Para resolver o problema, altere o modo STP para Multiple Spanning Tree (MST). Em alguns casos, o número de instâncias de STP é alto porque um número alto de VLANs é encaminhado em todas as portas de tronco. Nesse caso, remova manualmente as VLANs que não são necessárias do tronco para diminuir o número de portas ativas do STP para bem abaixo do valor recomendado.
Dica: certifique-se de não configurar as portas de telefone IP como portas de tronco. Essa é uma configuração incorreta comum. Configure as portas do telefone IP com uma configuração VLAN de voz. Essa configuração cria um pseudo tronco, mas não exige que você remova manualmente as VLANs desnecessárias. Para obter mais informações sobre como configurar portas de voz, consulte o guia de configuração de software Configurando interfaces de voz. Os telefones IP que não são da Cisco não suportam essa configuração de VLAN de voz ou VLAN auxiliar. Você deve remover manualmente as portas com telefones IP não Cisco.
Redirecionamentos de ICMP; Roteamento de pacotes na mesma interface
O roteamento de pacotes na mesma interface, ou de entrada e saída de tráfego na mesma interface L3, pode resultar em um redirecionamento ICMP pelo switch. Se o switch souber que o dispositivo do próximo salto para o destino final está na mesma sub-rede que o dispositivo emissor, o switch gerará um redirecionamento ICMP para a origem. As mensagens de redirecionamento indicam à origem para enviar o pacote diretamente ao dispositivo do próximo salto. As mensagens indicam que o dispositivo do próximo salto tem uma rota melhor para o destino, uma rota de um salto a menos que esse switch.
No diagrama nesta seção, o PC A se comunica com o servidor Web. O gateway padrão do PC A aponta para o endereço IP da interface VLAN 100. No entanto, o roteador do próximo salto que permite que o Catalyst 4500 alcance o destino está na mesma sub-rede do PC A. O melhor caminho nesse caso é enviar diretamente para o "Roteador". O Catalyst 4500 envia uma mensagem de redirecionamento ICMP para o PC A. A mensagem instrui o PC A a enviar os pacotes destinados ao Servidor web através do Roteador, em vez de através do Catalyst 4500. No entanto, na maioria dos casos, os dispositivos finais não respondem ao redirecionamento ICMP. A falta de resposta faz com que o Catalyst 4500 gaste muitos ciclos de CPU na geração desses redirecionamentos de ICMP para todos os pacotes que o Catalyst encaminha através da mesma interface que os pacotes de entrada.
Por padrão, o redirecionamento ICMP está ativado. Para desativá-lo, use o
ip icmp redirectscomando. Emita o comando na interface SVI ou L3 relevante.
Observação: como ip icmp redirects é um comando padrão, ele não fica visível na saída do comandoshow running-configuration.
Etapa 1: Verifique o processo do Cisco IOS com o show processes cpu comando.
Emita o comando
show processes cpu . Você pode ver que dois processos principais,Cat4k Mgmt LoPriandIP Input, usam principalmente a CPU. Com apenas essa informação, você sabe que o processo de pacotes IP gasta uma porção considerável da CPU.
Switch#show processes cpu
CPU utilization for five seconds: 38%/1%; one minute: 32%; five minutes: 32%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 63 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 60 50074 1 0.00% 0.00% 0.00% 0 Load Meter
3 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events
!--- Output suppressed.
27 524 250268 2 0.00% 0.00% 0.00% 0 TTY Background
28 816 254843 3 0.00% 0.00% 0.00% 0 Per-Second Jobs
29 101100 5053 20007 0.00% 0.01% 0.00% 0 Per-minute Jobs
30 26057260 26720902 975 5.81% 6.78% 5.76% 0 Cat4k Mgmt HiPri
31 19482908 29413060 662 19.64% 18.20% 20.48% 0 Cat4k Mgmt LoPri
!--- Output suppressed.show platform health
35 60 902 0 0.00% 0.00% 0.00% 0 DHCP Snooping 36 504625304 645491491 781 72.40% 72.63% 73.82% 0 IP Input
Etapa 2: Verifique o processo específico do Catalyst 4500 com o show platform health comando.
A saída do
show platform healthcomando confirma o uso da CPU para processar pacotes vinculados à CPU.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 330.00 19.18 150 79 25 500 20 19 18 5794:08
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Etapa 3: Verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Execute o
show platform cpu packet statisticscomando para verificar qual fila da CPU recebe o pacote vinculado à CPU. Você pode ver que oL3 Fwd Lowqueue recebe bastante tráfego.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 2 2 2 2
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 4717094264 3841 3879 3873 3547
L2 Fwd Medium 1 0 0 0 0
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Etapa 4: Identifique a causa raiz.
Nesse caso, use o SPAN da CPU para determinar o tráfego que atinge a CPU. Para obter informações sobre o SPAN da CPU, consulte a seção Ferramenta 1: Monitorar o Tráfego da CPU com SPAN—Cisco IOS Software Release 12.1(19)EW e Mais Recente deste documento. Conclua uma análise do tráfego e uma configuração com o uso do
show running-configurationcomando. Nesse caso, um pacote é roteado através da mesma interface, o que leva à emissão de um redirecionamento ICMP para cada pacote. Essa causa raiz é um dos motivos comuns para a alta utilização da CPU no Catalyst 4500.
Você pode esperar que o dispositivo de origem aja no redirecionamento ICMP que o Catalyst 4500 envia e altere o próximo salto para o destino. No entanto, nem todos os dispositivos respondem a um redirecionamento ICMP. Se o dispositivo não responder, o Catalyst 4500 deverá enviar redirecionamentos para cada pacote que o switch receber do dispositivo emissor. Esses redirecionamentos podem consumir uma grande quantidade de recursos da CPU. A solução é desativar o redirecionamento ICMP. Execute o
no ip redirectscomando nas interfaces.
Esse cenário pode ocorrer quando você também tiver configurado endereços IP secundários. Quando você habilita os endereços IP secundários, o redirecionamento de IP é desabilitado automaticamente. Certifique-se de não habilitar manualmente os redirecionamentos de IP.
Como indicado nesta seçãoRedirecionamentos de ICMP; Roteamento de pacotes na mesma interface, a maioria dos dispositivos finais não responde aos redirecionamentos de ICMP. Portanto, como prática geral, desative esse recurso.
Roteamento IPX ou AppleTalk
O Catalyst 4500 suporta o roteamento IPX e AppleTalk apenas através do caminho de encaminhamento de software. Com a configuração de tais protocolos, uma utilização maior da CPU é normal.
Observação: a comutação do tráfego IPX e AppleTalk na mesma VLAN não exige comutação de processos. Somente os pacotes que precisam ser roteados exigem encaminhamento de caminho de software.
Etapa 1: Verifique o processo do Cisco IOS com o show processes cpu comando.
Execute o
show processes cpu comando para verificar qual processo do Cisco IOS consome a CPU. Nesta saída de comando, observe que o processo superior é o Cat4k Mgmt LoPri:
witch#show processes cpu
CPU utilization for five seconds: 87%/10%; one minute: 86%; five minutes: 87%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 53 75 0.00% 0.00% 0.00% 0 Chunk Manager
!--- Output suppressed.
25 8008 1329154 6 0.00% 0.00% 0.00% 0 Per-Second Jobs
26 413128 38493 10732 0.00% 0.02% 0.00% 0 Per-minute Jobs
27 148288424 354390017 418 2.60% 2.42% 2.77% 0 Cat4k Mgmt HiPri
28 285796820 720618753 396 50.15% 59.72% 61.31% 0 Cat4k Mgmt LoPri
Etapa 2: Verifique o processo específico do Catalyst 4500 com o show platform health comando.
A saída do
show platform healthcomando confirma o uso da CPU para processar pacotes vinculados à CPU.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 4 100 500 0 0 0 0:00
K2CpuMan Review 30.00 27.39 30 53 100 500 42 47 42 4841:
K2AccelPacketMan: Tx 10.00 8.03 20 0 100 500 21 29 26 270:4
Etapa 3: verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Para determinar o tipo de tráfego que atinge a CPU, execute o
show platform cpu packet statisticscomando.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 2 2 2 2
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 1582414 1 1 1 1
L2 Fwd Medium 1 0 0 0 0
L2 Fwd Low 576905398 1837 1697 1938 1515
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Etapa 4: Identifique a causa raiz.
Como o administrador configurou o roteamento IPX ou AppleTalk, a identificação da causa raiz deve ser direta. Mas, para confirmar, SPAN o tráfego da CPU e certifique-se de que o tráfego que você vê é o tráfego esperado. Para obter informações sobre o SPAN da CPU, consulte a seção Ferramenta 1: Monitorar o Tráfego da CPU com SPAN—Cisco IOS Software Release 12.1(19)EW e Mais Recente deste documento.
Nesse caso, o administrador deve atualizar a CPU de linha de base para o valor atual. A CPU do Catalyst 4500 comporta-se como esperado quando a CPU processa pacotes comutados por software.
Aprendizado do host
O Catalyst 4500 aprende os endereços MAC de vários hosts, se o endereço MAC ainda não estiver na tabela de endereços MAC. O mecanismo de switching encaminha uma cópia do pacote com o novo endereço MAC para a CPU.
Todas as interfaces VLAN (camada 3) usam o endereço de hardware base do chassi como seu endereço MAC. Como resultado, não há uma entrada na tabela de endereços MAC e os pacotes destinados a essas interfaces VLAN não são enviados à CPU para processamento.
Se houver um número excessivo de novos endereços MAC a serem aprendidos pelo switch, pode resultar em alta utilização da CPU.
Etapa 1: Verifique o processo do Cisco IOS com o show processes cpu comando.
Execute
show processes cpuo comando para verificar qual processo do Cisco IOS consome a CPU. Nesta saída de comando, observe que o processo superior é o Cat4k Mgmt LoPri:
Switch#show processes cpu
CPU utilization for five seconds: 89%/1%; one minute: 74%; five minutes: 71%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 53 75 0.00% 0.00% 0.00% 0 Chunk Manager
!--- Output suppressed.
25 8008 1329154 6 0.00% 0.00% 0.00% 0 Per-Second Jobs
26 413128 38493 10732 0.00% 0.02% 0.00% 0 Per-minute Jobs
27 148288424 354390017 418 26.47% 10.28% 10.11% 0 Cat4k Mgmt HiPri
28 285796820 720618753 396 52.71% 56.79% 55.70% 0 Cat4k Mgmt LoPri
Etapa 2: Verifique o processo específico do Catalyst 4500 com o comando show platform health.
A saída do comando show platform health confirma o uso da CPU para processar pacotes vinculados à CPU.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 4 100 500 0 0 0 0:00
K2CpuMan Review 30.00 46.88 30 47 100 500 30 29 21 265:01
K2AccelPacketMan: Tx 10.00 8.03 20 0 100 500 21 29 26 270:4
Etapa 3: verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Para determinar o tipo de tráfego que atinge a CPU, execute o comando show platform cpu packet statistics.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 48613268 38 39 38 39
Control 142166648 74 74 73 73
Host Learning 1845568 1328 1808 1393 1309
L3 Fwd High 17 0 0 0 0
L3 Fwd Medium 2626 0 0 0 0
L3 Fwd Low 1582414 1 1 1 1
L2 Fwd Medium 1 0 0 0 0
L2 Fwd Low 576905398 37 7 8 5
L3 Rx High 257147 0 0 0 0
L3 Rx Low 5325772 10 19 13 7
RPF Failure 155 0 0 0 0
ACL fwd(snooping) 65604591 53 54 54 53
ACL log, unreach 11013420 9 8 8 8
Etapa 4: Identifique a causa raiz.
A saída do
show platform healthcomando mostra que a CPU vê muitos endereços MAC novos. Essa situação é geralmente o resultado da instabilidade da topologia da rede. Por exemplo, se a topologia spanning-tree for alterada, o switch gerará TCNs (Topology Change Notifications, Notificações de alteração de topologia). A emissão de TCNs reduz o tempo de envelhecimento para 15 segundos no modo PVST+. As entradas de endereços MAC são liberadas se os endereços não forem aprendidos dentro do período de tempo. No caso do Rapid STP (RSTP) (IEEE 802.1w) ou MST (IEEE 802.1s), as entradas envelhecem imediatamente se o TCN vier de outro switch. Esse envelhecimento faz com que os endereços MAC sejam aprendidos novamente. Esse não é um problema grave se as alterações de topologia forem raras. Mas pode haver um número excessivo de alterações de topologia por causa de um link não sincronizado, switch defeituoso ou portas de host que não estão habilitadas para PortFast. Um grande número de liberações de tabelas MAC e o reaprendizado subsequente podem resultar. A próxima etapa na identificação da causa raiz é solucionar problemas na rede. O switch funciona como esperado e envia os pacotes para a CPU para o aprendizado do endereço do host. Identifique e corrija o dispositivo defeituoso que resulta em excesso de TCNs.
Sua rede pode ter muitos dispositivos que enviam tráfego em rajadas, o que faz com que os endereços MAC sejam envelhecidos e, posteriormente, reaprendidos no switch. Nesse caso, aumente o tempo de envelhecimento da tabela de endereços MAC para fornecer algum alívio. Com um tempo de envelhecimento maior, os switches mantêm os endereços MAC do dispositivo na tabela por um período maior antes do envelhecimento.
Cuidado: faça essa alteração de idade somente após uma consideração cuidadosa. A mudança pode levar a um buraco negro de tráfego se você tiver dispositivos móveis em sua rede.
Sem recursos de hardware (TCAM) para ACL de segurança
O Catalyst 4500 programa as ACLs configuradas com o uso do Cisco TCAM. O TCAM permite a aplicação das ACLs no caminho de encaminhamento de hardware. Não há impacto no desempenho do switch, com ou sem ACLs no caminho de encaminhamento. O desempenho é constante apesar do tamanho da ACL porque o desempenho das pesquisas de ACL está na taxa de linha. No entanto, o TCAM é um recurso finito. Portanto, se você configurar um número excessivo de entradas de ACL, excederá a capacidade de TCAM.A Tabela 3mostra o número de recursos de TCAM disponíveis em cada um dos Catalyst 4500 Supervisor Engines e switches.
Tabela 3 - Capacidade de TCAM em Catalyst 4500 Supervisor Engines/Switches
Produto | TCAM de recurso (por direção) | TCAM de QoS (por direção) |
---|---|---|
Supervisor Engine II+/II+TS | 8.192 entradas com máscaras 1024 | 8.192 entradas com máscaras 1024 |
Supervisor Engine III/IV/V e Catalyst 4948 | 16.384 entradas com máscaras 2048 | 16.384 entradas com máscaras 2048 |
Supervisor Engine V-10GE e Catalyst 4948-10GE | 16.384 entradas com 16.384 máscaras | 16.384 entradas com 16.384 máscaras |
O switch usa o recurso TCAM para programar a ACL de segurança, como RACL e VLAN ACL (VACL). O switch também usa o recurso TCAM para recursos de segurança como IP Source Guard (IPSG) para ACLs dinâmicas. O switch usa a TCAM de QoS para programar a classificação e as ACLs do vigilante.
Quando o Catalyst 4500 fica sem recursos TCAM durante a programação de uma ACL de segurança, ocorre uma aplicação parcial da ACL através do caminho do software. Os pacotes que chegam a essas ACEs são processados em software, o que causa alta utilização da CPU. A ACL é programada de cima para baixo. Em outras palavras, se a ACL não se encaixar no TCAM, a ACE na parte inferior da ACL provavelmente não será programada no TCAM.
Esta mensagem de aviso aparece quando ocorre um estouro de TCAM:
%C4K_HWACLMAN-4-ACLHWPROGERRREASON: (Suppressed 1times) Input(null, 12/Normal)
Security: 140 - insufficient hardware TCAM masks.
%C4K_HWACLMAN-4-ACLHWPROGERR: (Suppressed 4 times) Input Security: 140 - hardware TCAM
limit, some packet processing can be software switched.
Você pode ver essa mensagem de erro na saída do comando show logging. A mensagem indica conclusivamente que algum processamento de software pode ocorrer e, consequentemente, pode haver alta utilização da CPU.
Observação: se você alterar uma ACL grande, poderá ver essa mensagem brevemente antes que a ACL alterada seja programada novamente no TCAM.
Etapa 1: Verifique o processo do Cisco IOS com o comando show processes cpu.
Emita o comando show processes cpu. Você pode ver que a utilização da CPU é alta porque o LoPriprocess de gerenciamento do Cat4k ocupa a maioria dos ciclos da CPU.
Switch#show processes cpu
CPU utilization for five seconds: 99%/0%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 11 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9716 632814 15 0.00% 0.00% 0.00% 0 Load Meter
3 780 302 2582 0.00% 0.00% 0.00% 0 SpanTree Helper
!--- Output suppressed.
23 18208 3154201 5 0.00% 0.00% 0.00% 0 TTY Background
24 37208 3942818 9 0.00% 0.00% 0.00% 0 Per-Second Jobs
25 1046448 110711 9452 0.00% 0.03% 0.00% 0 Per-minute Jobs
26 175803612 339500656 517 4.12% 4.31% 4.48% 0 Cat4k Mgmt HiPri
27 835809548 339138782 2464 86.81% 89.20% 89.76% 0 Cat4k Mgmt LoPri
28 28668 2058810 13 0.00% 0.00% 0.00% 0 Galios Reschedul
Etapa 2: Verifique o processo específico do Catalyst 4500 com o show platform health comando.
Emita o
show platform healthcomando. Você pode ver que oK2CpuMan Review, um trabalho para lidar com pacotes vinculados à CPU, usa a CPU.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.01 2 0 100 500 0 0 0 13:45
GalChassisVp-review 3.00 0.20 10 16 100 500 0 0 0 88:44
S2w-JobEventSchedule 10.00 0.57 10 7 100 500 1 0 0 404:22
Stub-JobEventSchedul 10.00 0.00 10 0 100 500 0 0 0 0:00
StatValueMan Update 1.00 0.09 1 0 100 500 0 0 0 91:33
Pim-review 0.10 0.00 1 0 100 500 0 0 0 4:46
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 14:01
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:20
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:01
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:04
KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:21
KxAclPathMan update 2.00 0.00 10 6 100 500 0 0 0 0:05
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 14 100 500 0 0 0 0:18
K2CpuMan Review 30.00 91.31 30 92 100 500 128 119 84 13039:02
K2AccelPacketMan: Tx 10.00 2.30 20 0 100 500 2 2 2 1345:30
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
Etapa 3: verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Você precisa entender melhor qual fila de CPU e, portanto, que tipo de tráfego atinge a fila de CPU. Emita o comando show platform cpu packet statistics. Você pode ver que a fila de processamento sw da ACL recebe um grande número de pacotes. Portanto, o estouro de TCAM é a causa desse problema de alta utilização da CPU.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 57902635 22 16 12 3
Host Learning 464678 0 0 0 0
L3 Fwd Low 623229 0 0 0 0
L2 Fwd Low 11267182 7 4 6 1
L3 Rx High 508 0 0 0 0
L3 Rx Low 1275695 10 1 0 0
ACL fwd(snooping) 2645752 0 0 0 0
ACL log, unreach 51443268 9 4 5 5
ACL sw processing 842889240 1453 1532 1267 1179
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
L2 Fwd Low 3270 0 0 0 0
ACL sw processing 12636 0 0 0 0
Etapa 4: Resolva o problema.
Na Etapa 3, você determinou a causa raiz neste cenário. Remova a ACL que causou o excesso ou minimize a ACL para evitar o excesso. Além disso, revise a diretriz de configuração de configuração de segurança de rede com ACLs para otimizar a configuração e a programação da ACL no hardware.
A palavra-chave log na ACL
O Catalyst 4500 suporta o registro de detalhes de pacotes que atingem qualquer entrada específica da ACL, mas o registro excessivo pode causar alta utilização da CPU. Evite o uso depalavras-chave de log, exceto durante o estágio de descoberta de tráfego. Durante o estágio de descoberta de tráfego, você identifica o tráfego que flui pela rede para o qual não configurou ACEs explicitamente. Não use a palavra-chave logue para coletar estatísticas. No Cisco IOS Software Release 12.1(13)EW e posterior, as mensagens de log são limitadas por taxa. Se você usar elogmessages para contar o número de pacotes que correspondem à ACL, a contagem não será precisa. Em vez disso, use o
show access-listcomando para estatísticas precisas. A identificação dessa causa raiz é mais fácil porque uma revisão da configuração oudas mensagens de log pode indicar o uso do recurso de registro de ACL.
Etapa 1: Verifique o processo do Cisco IOS com o comando show processes cpu.
Execute o comando
show processes cpupara verificar qual processo do Cisco IOS consome a CPU. Nesta saída de comando, você descobre que o processo superior é o Cat4k Mgmt LoPri:
Switch#show processes cpu
CPU utilization for five seconds: 99%/0%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 11 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9716 632814 15 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
26 175803612 339500656 517 4.12% 4.31% 4.48% 0 Cat4k Mgmt HiPri
27 835809548 339138782 2464 86.81% 89.20% 89.76% 0 Cat4k Mgmt LoPri
28 28668 2058810 13 0.00% 0.00% 0.00% 0 Galios Reschedul
Etapa 2: Verifique o processo específico do Catalyst 4500 com o comando show platform health.
Verifique o processo específico da plataforma que usa a CPU. Emita o
show platform healthcomando. Na saída, observe que o processo de revisão K2CpuMan usa a maioria dos ciclos da CPU. Esta atividade indica que a CPU está ocupada à medida que processa pacotes destinados a ela.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.01 2 0 100 500 0 0 0 13:45
GalChassisVp-review 3.00 0.20 10 16 100 500 0 0 0 88:44
S2w-JobEventSchedule 10.00 0.57 10 7 100 500 1 0 0 404:22
Stub-JobEventSchedul 10.00 0.00 10 0 100 500 0 0 0 0:00
StatValueMan Update 1.00 0.09 1 0 100 500 0 0 0 91:33
Pim-review 0.10 0.00 1 0 100 500 0 0 0 4:46
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 14:01
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:20
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:01
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:04
KxAclPathMan create/ 1.00 0.00 10 5 100 500 0 0 0 0:21
KxAclPathMan update 2.00 0.00 10 6 100 500 0 0 0 0:05
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 14 100 500 0 0 0 0:18
K2CpuMan Review 30.00 91.31 30 92 100 500 128 119 84 13039:02
K2AccelPacketMan: Tx 10.00 2.30 20 0 100 500 2 2 2 1345:30
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
Etapa 3: verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU.
Para determinar o tipo de tráfego que atinge a CPU, execute
show platform cpu packet statisticso comando. Nesta saída de comando, você pode ver que o recebimento de pacotes é devido à palavra-chave ACLlog:
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
----------------- -------------------- --------- --------- --------- ----------
Control 1198701435 35 35 34 35
Host Learning 874391 0 0 0 0
L3 Fwd High 428 0 0 0 0
L3 Fwd Medium 12745 0 0 0 0
L3 Fwd Low 2420401 0 0 0 0
L2 Fwd High 26855 0 0 0 0
L2 Fwd Medium 116587 0 0 0 0
L2 Fwd Low 317829151 53 41 31 31
L3 Rx High 2371 0 0 0 0
L3 Rx Low 32333361 7 1 2 0
RPF Failure 4127 0 0 0 0
ACL fwd (snooping) 107743299 4 4 4 4
ACL log, unreach 1209056404 1987 2125 2139 2089
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
----------------- -------------------- --------- --------- --------- ----------
ACL log, unreach 193094788 509 362 437 394
Etapa 4: Resolva o problema.
Na Etapa 3, você determinou a causa raiz neste cenário. Para evitar esse problema, remova a palavra-chave de log das ACLs. No Cisco IOS Software Release 12.1(13)EW1 e posterior, os pacotes têm taxa limitada para que a utilização da CPU não fique muito alta. Use os contadores da lista de acesso como uma maneira de controlar os acessos da ACL. Você pode ver os contadores da lista de acesso na saída
show access-list acl_iddo comando.
Loops de encaminhamento de camada 2
Os loops de encaminhamento da camada 2 podem ser causados pela implementação deficiente do Spanning Tree Protocol (STP) e por vários problemas que podem afetar o STP.
Etapa 1: Verifique o processo do Cisco IOS com o show processes cpu comando
Esta seção analisa os comandos que um administrador usa para restringir o problema de alta utilização da CPU. Se você executar o
show processes cpucomando, poderá ver que dois processos principais,Cat4k Mgmt LoPriandSpanning Tree, usam principalmente a CPU. Com apenas essas informações, você sabe que o processo spanning tree consome uma parte considerável dos ciclos da CPU.
Switch#show processes cpu
CPU utilization for five seconds: 74%/1%; one minute: 73%; five minutes: 50%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 198 20 0.00% 0.00% 0.00% 0 Chunk Manager
2 4 290 13 0.00% 0.00% 0.00% 0 Load Meter
!--- Output suppressed.
25 488 33 14787 0.00% 0.02% 0.00% 0 Per-minute Jobs
26 90656 223674 405 6.79% 6.90% 7.22% 0 Cat4k Mgmt HiPri
27 158796 59219 2681 32.55% 33.80% 21.43% 0 Cat4k Mgmt LoPri
28 20 1693 11 0.00% 0.00% 0.00% 0 Galios Reschedul
29 0 1 0 0.00% 0.00% 0.00% 0 IOS ACL Helper
30 0 2 0 0.00% 0.00% 0.00% 0 NAM Manager
!--- Output suppressed.
41 0 1 0 0.00% 0.00% 0.00% 0 SFF8472
42 0 2 0 0.00% 0.00% 0.00% 0 AAA Dictionary R
43 78564 20723 3791 32.63% 30.03% 17.35% 0 Spanning Tree
44 112 999 112 0.00% 0.00% 0.00% 0 DTP Protocol
45 0 147 0 0.00% 0.00% 0.00% 0 Ethchnl
Etapa 2: Verifique o processo específico do Catalyst 4500 com o comando show platform health
Para entender qual processo específico da plataforma consome a CPU, execute o
show platform healthcomando. A partir dessa saída, você pode ver que o processo de revisão K2CpuMan, um trabalho para lidar com pacotes vinculados à CPU, usa a CPU:
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
!--- Output suppressed.
TagMan-RecreateMtegR 1.00 0.00 10 0 100 500 0 0 0 0:00
K2CpuMan Review 30.00 37.62 30 53 100 500 41 33 1 2:12
K2AccelPacketMan: Tx 10.00 4.95 20 0 100 500 5 4 0 0:36
K2AccelPacketMan: Au 0.10 0.00 0 0 100 500 0 0 0 0:00
K2AclMan-taggedFlatA 1.00 0.00 10 0 100 500 0 0 0 0:00
Etapa 3: Verifique a fila da CPU que recebe o tráfego para identificar o tipo de tráfego vinculado à CPU
Execute o
show platform cpu packet statisticscomando para verificar qual fila da CPU recebe o pacote vinculado à CPU. A saída nesta seção mostra que a fila de controle recebe muitos pacotes. Use as informações naTabela 1e a conclusão que você tirou naEtapa 1. Você pode determinar que os pacotes que a CPU processa e o motivo para a alta utilização da CPU é o processamento de BPDU.
Switch#show platform cpu packet statistics
!--- Output suppressed.
Total packet queues 16
Packets Received by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Esmp 202760 196 173 128 28
Control 388623 2121 1740 598 16
Packets Dropped by Packet Queue
Queue Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Control 17918 0 19 24 3
Etapa 4: identificar a causa raiz e corrigir o problema
Geralmente, você pode concluir estas etapas para solucionar problemas (dependendo da situação, algumas etapas não são necessárias):
-
Identifique o loop.
-
Descubra o escopo do loop.
-
Interromper o loop.
-
Corrija a causa do loop.
-
Restaurar redundância.
Cada uma das etapas são explicadas em detalhes em Troubleshooting de Loops de Encaminhamento - Troubleshooting de STP em Catalyst Switches com Cisco IOS System Software.
Etapa 5: Implementar recursos STP avançados
-
BDPU Guard — Protege o STP de dispositivos de rede não autorizados conectados a portas com portfast habilitado. Consulte Aprimoramento do Spanning Tree PortFast BPDU Guard para obter mais informações.
-
Protetor de loop — Aumenta a estabilidade das redes da camada 2. Consulte Aprimoramentos do Spanning-Tree Protocol usando Proteção de Loop e Recursos de Detecção de Desvio de BPDU para obter mais informações.
-
Protetor de Raiz — Impõe a colocação da bridge raiz na rede. Consulte Aprimoramento de Protetor de Raiz do Spanning Tree Protocol para obter mais informações.
-
UDLD — Detecta links unidirecionais e evita loops de encaminhamento. Consulte Entendendo e Configurando o Recurso de Protocolo de Detecção de Link Unidirecional para obter mais informações.
Outras causas de alta utilização da CPU
Estas são algumas outras causas conhecidas da alta utilização da CPU:
-
-
Picos na utilização da CPU devido à verificação de consistência da FIB
-
Alta utilização da CPU no processo de movimentação de host K2FibAdjMan
-
Alta utilização da CPU no processo de revisão da porta RkiosPortMan
-
Alta utilização da CPU quando conectado a um telefone IP com o uso de portas de tronco
-
Alta utilização da CPU com RSPAN e pacotes de controle de Camada 3
-
Pico durante a programação de ACL grande
O pico na utilização da CPU ocorre durante a aplicação ou remoção de uma ACL grande de uma interface.
Flaps de link excessivos
O Catalyst 4500 exibe alta utilização da CPU quando um ou mais links conectados começam a oscilar excessivamente. Essa situação ocorre em Cisco IOS Software Releases anteriores ao Cisco IOS Software Release 12.2(20)EWA.
Etapa 1: Verifique o processo do Cisco IOS com o comando show processes cpu.
Execute o comando show processes cpu para verificar qual processo do Cisco IOS consome a CPU. Nesta saída de comando, observe que o processo superior é o Cat4k Mgmt LoPri:
Switch#show processes cpu
CPU utilization for five seconds: 96%/0%; one minute: 76%; five minutes: 68%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 0 4 0 0.00% 0.00% 0.00% 0 Chunk Manager
2 9840 463370 21 0.00% 0.00% 0.00% 0 Load Meter
3 0 2 0 0.00% 0.00% 0.00% 0 SNMP Timers
!--- Output suppressed.
27 232385144 530644966 437 13.98% 12.65% 12.16% 0 Cat4k Mgmt HiPri
28 564756724 156627753 3605 64.74% 60.71% 54.75% 0 Cat4k Mgmt LoPri
29 9716 1806301 5 0.00% 0.00% 0.00% 0 Galios Reschedul
Etapa 2: Verifique o processo específico do Catalyst 4500 com o comando show platform health.
A saída do comando show platform health indica que o processo de criação do KxAclPathMan usa a CPU. Esse processo é para criação de caminho interno.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.03 2 0 100 500 0 0 0 9:49
GalChassisVp-review 3.00 1.11 10 62 100 500 0 0 0 37:39
S2w-JobEventSchedule 10.00 2.85 10 8 100 500 2 2 2 90:00
Stub-JobEventSchedul 10.00 5.27 10 9 100 500 4 4 4 186:2
Pim-review 0.10 0.00 1 0 100 500 0 0 0 2:51
Ebm-host-review 1.00 0.00 8 4 100 500 0 0 0 8:06
Ebm-port-review 0.10 0.00 1 0 100 500 0 0 0 0:14
Protocol-aging-revie 0.20 0.00 2 0 100 500 0 0 0 0:00
Acl-Flattener 1.00 0.00 10 5 100 500 0 0 0 0:00
KxAclPathMan create/ 1.00 69.11 10 5 100 500 42 53 22 715:0
KxAclPathMan update 2.00 0.76 10 6 100 500 0 0 0 86:00
KxAclPathMan reprogr 1.00 0.00 2 1 100 500 0 0 0 0:00
TagMan-InformMtegRev 1.00 0.00 5 0 100 500 0 0 0 0:00
TagMan-RecreateMtegR 1.00 0.00 10 227 100 500 0 0 0 0:00
K2CpuMan Review 30.00 8.05 30 57 100 500 6 5 5 215:0
K2AccelPacketMan: Tx 10.00 6.86 20 0 100 500 5 5 4 78:42
Etapa 3: Identifique a causa raiz.
Ative o registro de mensagens de link ativo/inativo. Este registro não está habilitado por padrão. A habilitação ajuda a restringir os links ofensivos muito rapidamente. Emita o comando logging event link-status em todas as interfaces. Você pode usar o comando interface range para habilitar convenientemente em um intervalo de interfaces, como mostra este exemplo:
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface range gigabitethernet 5/1 - 48
Switch(config-if-range)#logging event link-status
Switch(config--if-range)#end
Switch#show logging
!--- Output suppressed.
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to down
3w5d: %LINK-3-UPDOWN: Interface GigabitEthernet5/24, changed state to up
Depois de identificar a interface defeituosa ou não sincronizada, desligue a interface para resolver o problema de alta utilização da CPU. O Cisco IOS Software Release 12.2(20)EWA e posterior melhorou o comportamento do Catalyst 4500 para essa condição de links não sincronizados. Portanto, o impacto na CPU não é tão grande quanto antes da melhoria. Lembre-se de que esse processo é um processo em segundo plano. A alta utilização da CPU por causa desse problema não causa efeitos adversos nos switches Catalyst 4500.
Picos na utilização da CPU devido à verificação de consistência da FIB
O Catalyst 4500 pode mostrar picos momentâneos na utilização da CPU durante uma verificação de consistência da tabela FIB. A tabela FIB é a tabela de encaminhamento de L3 criada pelo processo CEF. A verificação de consistência mantém a consistência entre a tabela FIB do Cisco IOS Software e as entradas de hardware. Essa consistência assegura que os pacotes não sejam roteados incorretamente. A verificação ocorre a cada 2 segundos e é executada como um processo de segundo plano de baixa prioridade. Esse processo é um comportamento normal e não interfere em outros processos ou pacotes de alta prioridade.
A saída do comando show platform health mostra queConsistência K2Fib Chconsome a maior parte da CPU.
Observação: A utilização média da CPU para esse processo é insignificante durante um minuto ou uma hora, o que confirma que a verificação é uma breve revisão periódica. Esse processo em segundo plano usa apenas os ciclos ociosos da CPU.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
!--- Output suppressed.
K2Fib cam usage revi 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib IrmFib Review 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib Vrf Default Ro 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib AdjRepop Revie 2.00 0.00 15 0 100 500 0 0 0 0:00
K2Fib Vrf Unpunt Rev 2.00 0.01 15 0 100 500 0 0 0 0:23
K2Fib Consistency Ch 1.00 60.40 5 2 100 500 0 0 0 100:23
K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21
K2FibAdjMan Host Mov 2.00 0.00 10 4 100 500 0 0 0 0:00
K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00
K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04
Alta Utilização de CPU no Processo de Movimentação de Host K2FibAdjMan
O Catalyst 4500 pode exibir alta utilização da CPU no processo K2FibAdjMan Host Moveprocess. Essa alta utilização aparece na saída do comando show platform health. Muitos endereços MAC frequentemente expiram ou são aprendidos em novas portas, o que causa essa alta utilização da CPU. O valor padrão de mac-address-table aging-time é de 5 minutos ou 300 segundos. A solução alternativa para esse problema é aumentar o tempo de envelhecimento do endereço MAC, ou você pode fazer a engenharia da rede para evitar o alto número de movimentações do endereço MAC. O Cisco IOS Software Release 12.2(18)EW e posterior melhorou esse comportamento do processo para consumir menos CPU. Consulte o bug da Cisco IDCSCed15021.
Observação: somente usuários registrados da Cisco podem acessar ferramentas e informações internas da Cisco.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14
!--- Output suppressed.
K2FibAdjMan Stats Re 2.00 0.30 10 4 100 500 0 0 0 6:21
K2FibAdjMan Host Mov 2.00 18.68 10 4 100 500 25 29 28 2134:39
K2FibAdjMan Adj Chan 2.00 0.00 10 0 100 500 0 0 0 0:00
K2FibMulticast Signa 2.00 0.01 10 2 100 500 0 0 0 2:04
K2FibMulticast Entry 2.00 0.00 10 7 100 500 0 0 0 0:00
Você pode modificar o tempo de envelhecimento máximo de um endereço MAC no modo de configuração global. A sintaxe do comando ismac-address-table aging-time seconds para um roteador e mac-address-table aging-time seconds [vlan vlan-id]para um Switch Catalyst. Para obter mais informações, consulte o Guia de Referência de Comandos do Cisco IOS Switching Services.
Alta utilização da CPU no processo de revisão de porta RkiosPortMan
O Catalyst 4500 pode exibir alta utilização da CPU no processo RkiosPortMan Port Review na saída do comando show platform health no Cisco IOS Software Release 12.2(25)EWA e 12.2(25)EWA1. O bug da Cisco IDCSCeh08768 causa a alta utilização, que o Cisco IOS Software Release 12.2(25)EWA2 resolve. Esse processo é em segundo plano e não afeta a estabilidade dos switches Catalyst 4500.
Observação: somente usuários registrados da Cisco podem acessar ferramentas e informações internas da Cisco.
Switch#show platform health
%CPU %CPU RunTimeMax Priority Average %CPU Total
Target Actual Target Actual Fg Bg 5Sec Min Hour CPU
Lj-poll 1.00 0.02 2 1 100 500 0 0 0 1:09
GalChassisVp-review 3.00 0.29 10 3 100 500 0 0 0 11:15
S2w-JobEventSchedule 10.00 0.32 10 7 100 500 0 0 0 10:14
!--- Output suppressed.
K2 Packet Memory Dia 2.00 0.00 15 8 100 500 0 1 1 45:46
K2 L2 Aging Table Re 2.00 0.12 20 3 100 500 0 0 0 7:22
RkiosPortMan Port Re 2.00 87.92 12 7 100 500 99 99 89 1052:36
Rkios Module State R 4.00 0.02 40 1 100 500 0 0 0 1:28
Rkios Online Diag Re 4.00 0.02 40 0 100 500 0 0 0 1:15
Alta utilização da CPU quando conectado a um telefone IP com o uso de portas de tronco
Se uma porta estiver configurada para a opção de VLAN de voz e para a opção de VLAN de acesso, a porta atuará como uma porta de acesso multi-VLAN. A vantagem é que somente as VLANs configuradas para as opções de VLAN de voz e acesso estão em tronco.
As VLANs que estão em tronco com o telefone aumentam o número de instâncias do STP. O switch gerencia as instâncias de STP. O gerenciamento do aumento nas instâncias do STP também aumenta a utilização da CPU do STP.
O entroncamento de todas as VLANs também faz com que o tráfego desnecessário de broadcast, multicast e unicast desconhecido atinja o link telefônico.
Switch#show processes cpu
CPU utilization for five seconds: 69%/0%; one minute: 72%; five minutes: 73%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 4 165 24 0.00% 0.00% 0.00% 0 Chunk Manager
2 29012 739091 39 0.00% 0.00% 0.00% 0 Load Meter
3 67080 13762 4874 0.00% 0.00% 0.00% 0 SpanTree Helper
4 0 1 0 0.00% 0.00% 0.00% 0 Deferred Events
5 0 2 0 0.00% 0.00% 0.00% 0 IpSecMibTopN
6 4980144 570766 8725 0.00% 0.09% 0.11% 0 Check heaps
26 539173952 530982442 1015 13.09% 13.05% 13.20% 0 Cat4k Mgmt HiPri
27 716335120 180543127 3967 17.61% 18.19% 18.41% 0 Cat4k Mgmt LoPri
33 1073728 61623 17424 0.00% 0.03% 0.00% 0 Per-minute Jobs
34 1366717824 231584970 5901 38.99% 38.90% 38.92% 0 Spanning Tree
35 2218424 18349158 120 0.00% 0.03% 0.02% 0 DTP Protocol
36 5160 369525 13 0.00% 0.00% 0.00% 0 Ethchnl
37 271016 2308022 117 0.00% 0.00% 0.00% 0 VLAN Manager
38 958084 3965585 241 0.00% 0.01% 0.01% 0 UDLD
39 1436 51011 28 0.00% 0.00% 0.00% 0 DHCP Snooping
40 780 61658 12 0.00% 0.00% 0.00% 0 Port-Security
41 1355308 12210934 110 0.00% 0.01% 0.00% 0 IP Input
Alta utilização da CPU com RSPAN e pacotes de controle de Camada 3
Os pacotes de controle de Camada 3 que são capturados com RSPAN são destinados à CPU, em vez de apenas à interface de destino de RSPAN, o que causa alta utilização da CPU. Os pacotes de controle L3 são capturados por entradas CAM estáticas com ação de encaminhamento para a CPU. As entradas CAM estáticas são globais para todas as VLANs. Para evitar sobrecarga desnecessária da CPU, use o recurso Per-VLAN Control Traffic Intercept, disponível nas versões 12.2(37)SG e posteriores do software Cisco IOS.
Switch(config)#access-list hardware capture mode vlan
As ACLs estáticas são instaladas na parte superior do recurso de entrada TCAM para capturar pacotes de controle destinados a endereços IP multicast bem conhecidos no intervalo 224.0.0.*. As ACLs estáticas são instaladas no momento da inicialização e aparecem antes de qualquer ACL configurada pelo usuário. As ACLs estáticas sempre são atingidas primeiro e interceptam o tráfego de controle para a CPU em todas as VLANs.
O recurso de interceptação de tráfego de controle por VLAN fornece um modo gerenciado de caminho por VLAN seletivo para capturar o tráfego de controle. As entradas CAM estáticas correspondentes no recurso de entrada TCAM são invalidadas no novo modo. Os pacotes de controle são capturados pela ACL específica ao recurso conectada às VLANs nas quais os recursos de rastreamento ou roteamento estão ativados. Não há nenhuma ACL específica ao recurso anexada à VLAN de RSPAN. Portanto, todos os pacotes de controle de camada 3 recebidos de RSPAN VLAN não são encaminhados para a CPU.
Ferramentas de Troubleshooting para Analisar o Tráfego Destinado à CPU
Como mostrado neste documento, o tráfego destinado à CPU é uma das principais causas da alta utilização da CPU no Catalyst 4500. O tráfego destinado à CPU pode ser intencional por causa da configuração, ou não intencional por causa de configuração incorreta ou um ataque de negação de serviço. A CPU tem um mecanismo integrado de QoS para evitar quaisquer efeitos adversos na rede devido a esse tráfego. No entanto, identifique a causa raiz do tráfego vinculado à CPU e elimine o tráfego se ele for indesejável.
Ferramenta 1: Monitorar o Tráfego da CPU com SPAN—Cisco IOS Software Release 12.1(19)EW e Mais Recente
O Catalyst 4500 permite o monitoramento do tráfego vinculado à CPU, seja de entrada ou de saída, com o uso da função SPAN padrão. A interface de destino se conecta a um monitor de pacotes ou a um laptop de administrador que executa o software sniffer de pacotes. Essa ferramenta ajuda a analisar rápida e precisamente o tráfego que a CPU processa. A ferramenta oferece a capacidade de monitorar filas individuais que estão vinculadas ao mecanismo de pacotes da CPU.
Observação: o mecanismo de switching tem 32 filas para o tráfego da CPU e o mecanismo de pacotes da CPU tem 16 filas.
Switch(config)#monitor session 1 source cpu ?
both Monitor received and transmitted traffic
queue SPAN source CPU queue
rx Monitor received traffic only
tx Monitor transmitted traffic only
<cr>
Switch(config)#monitor session 1 source cpu queue ?
<1-32> SPAN source CPU queue numbers
acl Input and output ACL [13-20]
adj-same-if Packets routed to the incoming interface [7]
all All queues [1-32]
bridged L2/bridged packets [29-32]
control-packet Layer 2 Control Packets [5]
mtu-exceeded Output interface MTU exceeded [9]
nfl Packets sent to CPU by netflow (unused) [8]
routed L3/routed packets [21-28]
rpf-failure Multicast RPF Failures [6]
span SPAN to CPU (unused) [11]
unknown-sa Packets with missing source address [10]
Switch(config)#monitor session 1 source cpu queue all rx
Switch(config)#monitor session 1 destination interface gigabitethernet 1/3
Switch(config)#end
4w6d: %SYS-5-CONFIG_I: Configured from console by console
Switch#show monitor session 1
Session 1
---------
Type : Local Session
Source Ports :
RX Only : CPU
Destination Ports : Gi1/3
Encapsulation : Native
Ingress : Disabled
Learning : Disabled
Se você conectar um PC que executa um programa farejador, poderá analisar rapidamente o tráfego. Na saída que aparece na janela nesta seção, você pode ver que a causa da alta utilização da CPU é um número excessivo de BPDUs do STP.
Observação: STP BPDUs no sniffer de CPU é normal. Mas se você vir mais do que o esperado, você excedeu os limites recomendados para seu Supervisor Engine. Consulte a seção Um alto número de instâncias de porta de árvore estendida deste documento para obter mais informações.
Ferramenta 2: Farejador de CPU Integrado—Cisco IOS Software Release 12.2(20)EW e Mais Recente
O Catalyst 4500 fornece um sniffer e decodificador de CPU embutido para identificar rapidamente o tráfego que atinge a CPU. Você pode ativar esse recurso com o
debug comando, como mostra o exemplo desta seção. Esse recurso implementa um buffer circular que pode reter 1024 pacotes de cada vez. À medida que chegam novos pacotes, eles sobrescrevem os pacotes mais antigos. Esse recurso é seguro para uso quando você soluciona problemas de alta utilização da CPU.
Switch#debug platform packet all receive buffer
platform packet debugging is on
Switch#show platform cpu packet buffered
Total Received Packets Buffered: 36
-------------------------------------
Index 0:
7 days 23:6:32:37214 - RxVlan: 99, RxPort: Gi4/48
Priority: Crucial, Tag: Dot1Q Tag, Event: Control Packet, Flags: 0x40, Size: 68
Eth: Src 00-0F-F7-AC-EE-4F Dst 01-00-0C-CC-CC-CD Type/Len 0x0032
Remaining data:
0: 0xAA 0xAA 0x3 0x0 0x0 0xC 0x1 0xB 0x0 0x0
10: 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16 0x63 0x28
20: 0x62 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16
30: 0x63 0x28 0x62 0x80 0xF0 0x0 0x0 0x14 0x0 0x2
40: 0x0 0xF 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x63
Index 1:
7 days 23:6:33:180863 - RxVlan: 1, RxPort: Gi4/48
Priority: Crucial, Tag: Dot1Q Tag, Event: Control Packet, Flags: 0x40, Size: 68
Eth: Src 00-0F-F7-AC-EE-4F Dst 01-00-0C-CC-CC-CD Type/Len 0x0032
Remaining data:
0: 0xAA 0xAA 0x3 0x0 0x0 0xC 0x1 0xB 0x0 0x0
10: 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16 0x63 0x28
20: 0x62 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x2 0x16
30: 0x63 0x28 0x62 0x80 0xF0 0x0 0x0 0x14 0x0 0x2
40: 0x0 0xF 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x63
Observação: a utilização da CPU quando você emite um debug comando é sempre quase 100%. É normal ter alta utilização da CPU ao emitir um debug comando.
Ferramenta 3: Identificar a Interface que Envia Tráfego para a CPU - Cisco IOS Software Release 12.2(20)EW e Posterior
O Catalyst 4500 fornece outra ferramenta útil para identificar as principais interfaces que enviam tráfego/pacotes para processamento da CPU. Essa ferramenta ajuda a identificar rapidamente um dispositivo errante que envia um alto número de ataques de broadcast ou outros ataques de negação de serviço à CPU. Esse recurso também é seguro quando você soluciona problemas de alta utilização da CPU.
Switch#debug platform packet all count
platform packet debugging is on
Switch#show platform cpu packet statistics
!--- Output suppressed.
Packets Transmitted from CPU per Output Interface
Interface Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Gi4/47 1150 1 5 10 0
Gi4/48 50 1 0 0 0
Packets Received at CPU per Input Interface
Interface Total 5 sec avg 1 min avg 5 min avg 1 hour avg
---------------------- --------------- --------- --------- --------- ----------
Gi4/47 23130 5 10 50 20
Gi4/48 50 1 0 0 0
Observação: a utilização da CPU quando você emite um comando debug é sempre quase 100%. É normal ter alta utilização da CPU quando você emite um comando debug.
Summary
Os switches Catalyst 4500 lidam com uma alta taxa de encaminhamento de pacotes IP versão 4 (IPv4) em hardware. Alguns dos recursos ou exceções podem causar o encaminhamento de alguns pacotes através do caminho do processo da CPU. O Catalyst 4500 usa um mecanismo de QoS sofisticado para lidar com pacotes vinculados à CPU. Esse mecanismo garante a confiabilidade e a estabilidade dos switches e, ao mesmo tempo, maximiza a CPU para o encaminhamento de pacotes de software. O Cisco IOS Software Release 12.2(25)EWA2 e posterior fornece aprimoramentos adicionais para o manuseio de pacotes/processos, bem como contabilidade. O Catalyst 4500 também tem comandos suficientes e ferramentas poderosas para ajudar na identificação da causa raiz de cenários de alta utilização da CPU. Mas, na maioria dos casos, a alta utilização da CPU no Catalyst 4500 não é uma causa de instabilidade da rede nem um motivo de preocupação.
Informações Relacionadas
Revisão | Data de publicação | Comentários |
---|---|---|
2.0 |
01-Aug-2023 |
Recertificação |
1.0 |
13-Jul-2005 |
Versão inicial |