Questo documento descrive le cause dell'elevato utilizzo della CPU sugli switch Cisco Catalyst serie 3750. Analogamente ai router Cisco, gli switch usano il comando show PROCESSES cpu per visualizzare l'utilizzo della CPU e identificare le cause di un elevato utilizzo della CPU. Tuttavia, a causa delle differenze nell'architettura e nei meccanismi di inoltro tra i router e gli switch Cisco, l'output tipico del comando show PROCESSES cpu differisce in modo significativo. Nel documento vengono elencati anche alcuni sintomi comuni che causano un elevato utilizzo della CPU sugli switch Catalyst serie 3750.
Nessun requisito specifico previsto per questo documento.
Per questo documento, sono stati usati switch Catalyst 3750.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Prima di esaminare l'architettura di gestione dei pacchetti CPU e di risolvere i problemi relativi all'elevato utilizzo della CPU, è necessario comprendere le diverse modalità in cui gli switch di inoltro basati su hardware e i router basati su software Cisco IOS® utilizzano la CPU. L'idea sbagliata comune è che un elevato utilizzo della CPU indica l'esaurimento delle risorse su un dispositivo e la minaccia di un arresto anomalo. Un problema di capacità è uno dei sintomi di un elevato utilizzo della CPU sui router Cisco IOS. Tuttavia, un problema di capacità non è quasi mai sintomo di un elevato utilizzo della CPU con switch di inoltro basati su hardware.
Per risolvere i problemi relativi all'utilizzo elevato della CPU, controllare le note sulla versione di Cisco IOS dello switch Catalyst 3750 per individuare il possibile bug IOS noto. In questo modo è possibile eliminare il bug IOS dalle operazioni di risoluzione dei problemi. Per un elenco delle note sulla versione degli switch Catalyst 3750, fare riferimento alle note sulla versione degli switch Cisco Catalyst serie 3750.
In questa sezione vengono illustrati alcuni dei problemi più comuni di utilizzo elevato della CPU sullo switch Catalyst 3750.
Una delle cause più comuni dell'elevato utilizzo della CPU è che la CPU Catalyst 3750 è occupata dall'elaborazione di messaggi di abbandono IGMP (Internet Group Management Protocol). Se uno stack di switch Catalyst 3750 con software Cisco IOS versione 12.1(14)EA1a è collegato a un altro switch, ad esempio un Cat6500 con software CatOS, che genera query IGMP basate su MAC con opzioni IP, lo stack 3750 registra un elevato utilizzo della CPU nel processo IGMPSN (snooping). Questo è il risultato del loop dei pacchetti di query basati sull'indirizzo MAC nello stack. È inoltre possibile visualizzare un numero elevato di CPU con il processo di richiesta HRPC hl2mm. Se EtherChannel è stato configurato sullo stack Catalyst 3750 con software Cisco IOS versione 12.1(14)EA1a, potrebbe crearsi una marea di messaggi IGMP leave.
Catalyst 3750 riceve molte query IGMP. In questo modo il contatore di query IGMP inizia a incrementare di centinaia al secondo. Ciò comporta un elevato livello di CPU nello switch Catalyst 3750. Fare riferimento all'ID bug Cisco CSCeg55298 (solo utenti registrati). Il bug è stato identificato nel software Cisco IOS versione 12.1(14)EA1a ed è risolto nel software Cisco IOS versione 12.2(25)SEA e successive. La soluzione permanente consiste nell'effettuare l'aggiornamento all'ultima versione di Cisco IOS. Per ovviare temporaneamente al problema, è possibile disabilitare lo snooping IGMP sullo stack Catalyst 3750 o disabilitare le query basate su MAC sullo switch collegato allo stack 3750.
Di seguito viene riportato un esempio di output del comando show ip traffic che mostra i pacchetti IP con opzioni e avvisi errati con incremento rapido:
Switch#show ip traffic Rcvd: 48195018 total, 25628739 local destination 0 format errors, 0 checksum errors, 10231692 bad hop count 0 unknown protocol, 9310320 not a gateway 0 security failures, 10231 bad options, 2640539 with options Opts: 2640493 end, 206 nop, 0 basic security, 2640523 loose source route 0 timestamp, 0 extended security, 16 record route 0 stream ID, 0 strict source route, 10231 alert, 0 cipso, 0 ump 0 other Frags: 16 reassembled, 0 timeouts, 0 couldn't reassemble 32 fragmented, 0 couldn't fragment Bcast: 308 received, 0 sent Mcast: 4221007 received, 4048770 sent Sent: 25342014 generated, 20710669 forwarded Drop: 617267 encapsulation failed, 0 unresolved, 0 no adjacency 0 no route, 0 unicast RPF, 0 forced drop 0 options denied, 0 source IP address zero !--- Output suppressed.
Il comando show PROCESSES cpu visualizza informazioni sui processi attivi nello switch e le statistiche di utilizzo della CPU corrispondenti. Di seguito viene riportato un output di esempio del comando show PROCESSES cpu quando l'utilizzo della CPU è normale:
switch#show processes cpu CPU utilization for five seconds: 8%/4%; one minute: 6%; five minutes: 5% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 0.00% 0.00% 0.00% 0 IGMPSN !--- CPU utilization at normal condition. 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 1 0 0.00% 0.00% 0.00% 0 HRPC hI2mm reque !--- Output suppressed.
Di seguito viene riportato un output di esempio del comando show PROCESSES cpu quando l'utilizzo della CPU è elevato a causa del processo di snooping IGMP:
switch#show processes cpu CPU utilization for five seconds: 8%/4%; one minute: 6%; five minutes: 5% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 100 100 100 0 IGMPSN !--- Due to high CPU utilization. 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 2874 0 100 100 100 0 HRPC hI2mm reque !--- Output suppressed.
Il tunnel GRE (General Routing Encapsulation) non è supportato dagli switch Cisco Catalyst serie 3750. Anche se questa funzione può essere configurata con la CLI, i pacchetti non possono essere commutati né dall'hardware né dal software, il che aumenta l'utilizzo della CPU.
Nota: solo le interfacce tunnel DVMRP (Distance Vector Multicast Routing Protocol) sono supportate per il routing multicast in Catalyst 3750. Anche per questo, i pacchetti non possono essere commutati con l'hardware. I pacchetti indirizzati attraverso questo tunnel devono essere commutati tramite software. Il maggior numero di pacchetti inoltrati tramite questo tunnel aumenta l'utilizzo della CPU.
Non sono disponibili soluzioni alternative per questo problema. Si tratta di un limite hardware degli switch Catalyst serie 3750.
Se gli switch Catalyst 3750 sono connessi a uno stack e sono state apportate modifiche alla configurazione, il processo di configurazione dello switch in esecuzione si riattiva e genera una nuova copia della configurazione in esecuzione. Quindi, invia i dati a tutti gli switch dello stack. La nuova configurazione in esecuzione richiede un utilizzo intensivo della CPU. Pertanto, l'utilizzo della CPU è elevato quando si crea un nuovo processo di configurazione in esecuzione e si inoltrano le nuove configurazioni ad altri switch. Tuttavia, questo elevato utilizzo della CPU deve esistere solo per lo stesso tempo necessario per eseguire il passaggio di configurazione della generazione del comando show running-configuration.
Non è necessaria una soluzione per questo problema. In queste situazioni l'utilizzo della CPU è in genere elevato.
Di seguito viene riportato un output di esempio del comando show PROCESSES cpu quando l'utilizzo della CPU è elevato a causa del processo in esecuzione dell'hulc:
switch#show processes cpu CPU utilization for five seconds: 63%/0%; one minute: 27%; five minutes: 23% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 0.00% 0.00% 0.00% 0 IGMPSN 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 1 0 0.00% 0.00% 0.00% 0 HRPC h12mm reque 17 85964 426 201793 55.72% 12.05% 5.36% 0 hulc running !--- Output suppressed.
L'utilizzo elevato della CPU da parte del processo di input Address Resolution Protocol (ARP) si verifica se il router deve generare un numero eccessivo di richieste ARP. Le richieste ARP per lo stesso indirizzo IP sono limitate alla velocità di una richiesta ogni due secondi. È stato pertanto necessario creare un numero eccessivo di richieste ARP per indirizzi IP diversi. Questa situazione può verificarsi se è stato configurato un percorso IP che punta a un'interfaccia di trasmissione. Un esempio ovvio è una route predefinita, ad esempio:
ip route 0.0.0.0 0.0.0.0 Fastethernet0/0
In questo caso, il router genera una richiesta ARP per ciascun indirizzo IP che non è raggiungibile tramite percorsi più specifici, ossia genera una richiesta ARP per quasi tutti gli indirizzi su Internet. Per ulteriori informazioni su come configurare l'indirizzo IP dell'hop successivo per il routing statico, consultare il documento sulla specifica dell'indirizzo IP dell'hop successivo per le route statiche.
In alternativa, una quantità eccessiva di richieste ARP può essere causata da un flusso di traffico dannoso che esegue la scansione nelle subnet collegate localmente. Un'indicazione di tale flusso è la presenza di un numero molto elevato di voci ARP incomplete nella tabella ARP. Poiché i pacchetti IP in ingresso che attivano le richieste ARP devono essere elaborati, la risoluzione di questo problema è essenzialmente la stessa di quella dei problemi relativi all'elevato utilizzo della CPU nel processo di input IP.
Nelle ultime versioni di Cisco IOS per Catalyst 3750, le richieste SNMP (Simple Network Management Protocol) vengono gestite da SNMP ENGINE. È normale che la CPU passi in alto a causa di questo processo del motore SNMP. Il processo SNMP ha una bassa priorità e non deve influire su alcuna funzionalità dello switch.
Per ulteriori informazioni sull'elevato utilizzo della CPU causato dal processo SNMP ENGINE, fare riferimento a IP Simple Network Management Protocol (SNMP) Cause High CPU Utilization (Utilizzo elevato della CPU).
Sugli switch Catalyst serie 3750, lo switch Database Management (SDM) gestisce le informazioni di switching di layer 2 e layer 3 conservate nella Ternary Content Addressable Memory (TCAM). I modelli SDM vengono usati per configurare le risorse di sistema nello switch in modo da ottimizzare il supporto di funzionalità specifiche, a seconda di come lo switch viene usato sulla rete. È possibile selezionare i modelli SDM per ottimizzare l'utilizzo del sistema per alcune funzioni o per utilizzare il modello predefinito per bilanciare le risorse. I modelli assegnano priorità alle risorse di sistema al fine di ottimizzare il supporto per questi tipi di funzionalità:
Routing: il modello di routing massimizza le risorse di sistema per il routing unicast, in genere richiesto per un router o un aggregatore al centro di una rete.
VLAN: il modello VLAN disabilita il routing e supporta il numero massimo di indirizzi MAC unicast. Questa opzione è in genere selezionata per uno switch di layer 2.
Accesso: il modello di accesso consente di ottimizzare le risorse di sistema per gli elenchi di controllo di accesso (ACL, Access Control List) in modo da contenere un numero elevato di ACL.
Default - La maschera di default consente di bilanciare tutte le funzioni.
Ogni modello è disponibile in due versioni: un modello desktop e un modello aggregator.
Nota: il modello predefinito per gli switch per desktop è il modello predefinito per i desktop. Il modello predefinito per Catalyst 3750-12S è il modello di aggregazione predefinito.
Selezionare un modello SDM appropriato che fornisca l'utilizzo massimo del sistema per la funzionalità utilizzata. Un modello SDM non appropriato può sovraccaricare la CPU e ridurre notevolmente le prestazioni dello switch.
Utilizzare il comando show platform tcam usage per verificare il livello di utilizzo di TCAM e la quantità disponibile.
Switch#show platform tcam utilization CAM Utilization for ASIC# 0 Max Used Masks/Values Masks/values Unicast mac addresses: 784/6272 12/26 IPv4 IGMP groups + multicast routes: 144/1152 6/26 IPv4 unicast directly-connected routes: 784/6272 12/26 IPv4 unicast indirectly-connected routes: 272/2176 8/44 IPv4 policy based routing aces: 0/0 0/0 IPv4 qos aces: 528/528 18/18 IPv4 security aces: 1024/1024 27/27 Note: Allocation of TCAM entries per feature uses a complex algorithm. The above information is meant to provide an abstract view of the current TCAM utilization
Se l'utilizzo TCAM per uno qualsiasi dei parametri è vicino al massimo, verificate se le altre feature di maschera possono essere ottimizzate per tale parametro.
show sdm prefer access | default | dual-ipv4-and-ipv6 | routing | vlan
Switch# show sdm prefer routing "desktop routing" template: The selected template optimizes the resources in the switch to support this level of features for 8 routed interfaces and 1024 VLANs. number of unicast mac addresses: 3K number of igmp groups + multicast routes: 1K number of unicast routes: 11K number of directly connected hosts: 3K number of indirect routes: 8K number of policy based routing aces: 512 number of qos aces: 512 number of security aces: 1K
Per specificare il modello SDM da utilizzare sullo switch, usare il comando sdm preferisci configurazione globale.
Nota: per utilizzare il nuovo modello SDM, è necessario ricaricare lo switch.
L'implementazione del Policy Based Routing (PBR) sugli switch Cisco Catalyst 3750 ha alcune limitazioni. Se queste restrizioni non vengono rispettate, è possibile che l'utilizzo della CPU risulti elevato.
È possibile abilitare PBR su una porta instradata o una SVI.
Lo switch non supporta istruzioni di negazione route-map per PBR.
Il traffico multicast non è indirizzato a criteri. Il PBR si applica solo al traffico unicast.
Non corrispondono agli ACL che permettono pacchetti destinati a un indirizzo locale. Il PBR inoltra questi pacchetti e può causare errori ping o Telnet o flapping del protocollo di routing.
Non corrisponde agli ACL con ACE di negazione. I pacchetti che corrispondono a una voce ACE di negazione vengono inviati alla CPU, il che può causare un elevato utilizzo della CPU.
Per utilizzare il PBR, occorre prima abilitare il modello di routing con il comando sdm preferisci routing in modalità di configurazione globale. il PBR non è supportato con la VLAN o il modello predefinito.
Per un elenco completo, fare riferimento alle linee guida per la configurazione di PBR.
È possibile ottenere reindirizzamenti ICMP ignorati quando una VLAN (o una porta di livello 3) riceve un pacchetto in cui l'IP di origine si trova su una subnet, l'IP di destinazione su un'altra subnet e l'hop successivo si trova sulla stessa VLAN o segmento di livello 3.
Di seguito è riportato un esempio:
È possibile visualizzare questo messaggio in show log:
51w2d: ICMP-Q:Dropped redirect disabled on L3 IF: Local Port Fwding L3If:Vlan7 L2If:GigabitEthernet2/0/13 DI:0xB4, LT:7, Vlan:7 SrcGPN:65, SrcGID:65, ACLLogIdx:0x0, MacDA:001a.a279.61c1, MacSA: 0002.5547.3bf0 IP_SA:64.253.128.3 IP_DA:208.118.132.9 IP_Proto:47 TPFFD:EDC10041_02C602C6_00B0056A-000000B4_EBF6001B_0D8A3746
Questo si verifica quando il pacchetto viene ricevuto sulla VLAN 7 con IP di origine 64.253.128.3 e cerca di raggiungere 208.118.132.9, l'IP di destinazione. Come si può vedere, l'hop successivo configurato nello switch (in questo caso 64.253.128.41) è anche sulla stessa VLAN 7.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
20-Dec-2005 |
Versione iniziale |