Catalyst 6500/6000 Switch High CPU Utilization............................................................................................ 1
Catalyst 6500/6000 Switch High CPU Utilization............................................................................................ 1
Catalyst 6500/6000 Switch High CPU Utilization............................................................................................ 1
Table of Contents
Catalyst 6500/6000 Switch High CPU Utilization............................................................................................1
Document ID: 63992................................................................................................................................1
Introduction..........................................................................................................................................................1
Prerequisites.........................................................................................................................................................1
Requirements..........................................................................................................................................1
Components Used...................................................................................................................................2
Conventions............................................................................................................................................2
Difference Between CatOS and Cisco IOS System Software.............................................................................2
Understand CPU Utilization on Catalyst 6500/6000 Switches............................................................................2
Situations and Features That Trigger Traffic to Go to Software.........................................................................3
Packets That Are Destined to the Switch................................................................................................3
Packets and Conditions That Require Special Processing......................................................................3
ACLBased Features..............................................................................................................................4
NetFlowBased Features........................................................................................................................5
Multicast Traffic.....................................................................................................................................5
Other Features.........................................................................................................................................6
IPv6 Situations........................................................................................................................................6
Common Causes and Solutions for High CPU Utilization Issues.......................................................................6
IP Unreachables......................................................................................................................................6
Use of CEF FIB Table Space in the Flow Cache Table.........................................................................6
Optimized ACL Logging........................................................................................................................8
Rate Limit of Packets to the CPU...........................................................................................................8
Physical Merger of VLANs Due to Incorrect Cabling...........................................................................9
Check CPU Utilization........................................................................................................................................9
Utilities and Tools to Determine the Traffic That Is Punted to the CPU...........................................................10
Cisco IOS System Software..................................................................................................................10
CatOS System Software........................................................................................................................12
Recommendations..............................................................................................................................................13
NetPro Discussion Forums Featured Conversations......................................................................................14
Related Information...........................................................................................................................................14
Introduction
This document describes causes of high CPU utilization on Cisco Catalyst 6500/6000 series switches. Like
Cisco routers, switches use the show processes cpu command in order to show CPU utilization for the switch
Supervisor Engine processor. However, due to the differences in architecture and forwarding mechanisms
between Cisco routers and switches, the typical output of the show processes cpu command differs
significantly. The meaning of the output differs, too. This document clarifies these differences. The document
describes use of the CPU on the switches and how to interpret the show processes cpu command output.
Note: In this document, the words "switch" and "switches" refer to the Catalyst 6500/6000 switches.
Prerequisites
Requirements
There are no specific requirements for this document.
Components Used
The information in this document is based on the software and hardware versions for:
Catalyst 6500/6000 switches
The information in this document was created from the devices in a specific lab environment. All of the
devices used in this document started with a cleared (default) configuration. If your network is live, make sure
that you understand the potential impact of any command.
Conventions
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Handles network management traffic that is destined to the CPU of the switch
Examples include Telnet, HTTP, and Simple Network Management Protocol (SNMP) traffic.
The RP CPU performs functions that include:
Builds and updates the L3 routing and Address Resolution Protocol (ARP) tables
Generates the Cisco Express Forwarding (CEF) Forwarding Information Base (FIB) and adjacency
tables, and downloads the tables into the Policy Feature Card (PFC)
Handles network management traffic that is destined to the RP
Examples include Telnet, HTTP, and SNMP traffic.
Internetwork Packet Exchange (IPX) traffic that is softwareswitched on the Supervisor Engine 720
in both Cisco IOS Software and CatOS
IPX traffic is also softwareswitched on the Supervisor Engine 2/Cisco IOS Software, but the traffic
is hardwareswitched on the Supervisor Engine 2/CatOS. IPX traffic is hardwareswitched on the
Supervisor Engine 1A for both operating systems.
AppleTalk traffic
Hardware resources full conditions
These resources include FIB, contentaddressable memory (CAM), and ternary CAM (TCAM).
ACLBased Features
Access control list (ACL)denied traffic with the ICMP unreachables feature turned on
Note: This is the default.
Some ACLdenied packets are leaked to the MSFC if IP unreachables are enabled. Packets that
require ICMP unreachables are leaked at a userconfigurable rate. By default, the rate is 500 packets
per second (pps).
IPX filtering on the basis of unsupported parameters, such as source host
On the Supervisor Engine 720, the process of L3 IPX traffic is always in software.
Access control entries (ACEs) that require logging, with the log keyword
This applies to ACL log and VLAN ACL (VACL) log features. ACEs in the same ACL that do not
require logging still process in hardware. The Supervisor Engine 720 with PFC3 supports the rate
limit of packets that are redirected to the MSFC for ACL and VACL logging. The Supervisor Engine
2 supports the rate limit of packets that are redirected to the MSFC for VACL logging. Support for
ACL logging on the Supervisor Engine 2 is scheduled for the Cisco IOS Software Release 12.2S
branch.
Policyrouted traffic, with use of match length, set ip precedence, or other unsupported parameters
The set interface parameter has support in software. However, the set interface null 0 parameter is
an exception. This traffic is handled in hardware on the Supervisor Engine 2 with PFC2 and the
Supervisor Engine 720 with PFC3.
NonIP and nonIPX router ACLs (RACLs)
NonIP RACLs apply to all Supervisor Engines. The nonIPX RACLs apply to the Supervisor
Engine 1a with PFC and the Supervisor Engine 2 with PFC2 only.
Broadcast traffic that is denied in an RACL
Traffic that is denied in a unicast RPF (uRPF) check, ACL ACE
This uRPF check applies to the Supervisor Engine 2 with PFC2 and Supervisor Engine 720 with
PFC3.
Authentication proxy
Traffic that is subject to authentication proxy can be ratelimited on the Supervisor Engine 720.
Cisco IOS Software IP Security (IPSec)
Traffic that is subject to Cisco IOS encryption can be ratelimited on the Supervisor Engine 720.
NetFlowBased Features
The NetFlowbased features that this section describes apply to the Supervisor Engine 2 and Supervisor
Engine 720 only.
NetFlowbased features always need to see the first packet of a flow in software. Once the first
packet of the flow reaches software, subsequent packets for the same flow are hardwareswitched.
This flow arrangement applies to reflexive ACLs, Web Cache Communication Protocol (WCCP), and
Cisco IOS Server Load Balancing (SLB).
Note: On the Supervisor Engine 1, reflexive ACLs rely on dynamic TCAM entries to create hardware
shortcuts for a particular flow. The principle is the same: the first packet of a flow goes to software.
Subsequent packets for that flow are hardwareswitched.
With the TCP Intercept feature, the threeway handshake and session close are handled in software.
The rest of the traffic is handled in hardware.
Note: Synchronize (SYN), SYN acknowledge (SYN ACK), and ACK packets comprise the
threeway handshake. Session close occurs with finish (FIN) or reset (RST).
With Network Address Translation (NAT), traffic is handled in this way:
On the Supervisor Engine 720:
Traffic that requires NAT is handled in hardware after the initial translation. Translation of
the first packet of a flow occurs in software, and subsequent packets for that flow are
hardwareswitched. For TCP packets, a hardware shortcut is created in the NetFlow table
after completion of the TCP threeway handshake.
On the Supervisor Engine 2 and Supervisor Engine 1:
All traffic that requires NAT is softwareswitched.
Contextbased Access Control (CBAC) uses NetFlow shortcuts in order to classify traffic that
requires inspection. Then, CBAC sends only this traffic to software. CBAC is a softwareonly
feature; traffic that is subject to inspection is not hardwareswitched.
Note: Traffic that is subject to inspection can be ratelimited on the Supervisor Engine 720.
Multicast Traffic
Protocol Independent Multicast (PIM) snooping
Internet Group Management Protocol (IGMP) snooping (TTL = 1)
This traffic is indeed destined to the router.
Multicast Listener Discovery (MLD) snooping (TTL = 1)
This traffic is indeed destined to the router.
FIB miss
Multicast packets for registration that have direct connection to the multicast source
These multicast packets are tunneled to the rendezvous point.
IP version 6 (IPv6) multicast
Other Features
NetworkBased Application Recognition (NBAR)
ARP Inspection, with CatOS only
Port Security, with CatOS only
DHCP snooping
IPv6 Situations
Packets with a hopbyhop option header
Packets with the same destination IPv6 address as that of routers
Packets that fail the scope enforcement check
Packets that exceed the MTU of the output link
Packets with a TTL that is less than or equal to 1
Packets with an input VLAN that equals the output VLAN
IPv6 uRPF
Software performs this uRPF for all packets.
IPv6 reflexive ACLs
Software handles these reflexive ACLs.
6to4 prefixes for IPv6 IntraSite Automatic Tunnel Addressing Protocol (ISATAP) tunnels
Software handles this tunneling. All other traffic that enters an ISATAP tunnel is hardwareswitched.
packets become switched in software. This can cause high CPU utilization on the RP. In order to check the
number of routes in the CEF FIB table, use these commands:
Router# show processes cpu
CPU utilization for five seconds: 99.26%
one minute: 100.00%
five minutes: 100.00%
PID
1
2
3
4
5
Runtime(ms)
0
2
0
0
653
Invoked
0
245
1
1
11737
uSecs
5Sec
1Min
5Min
0
0.74%
0.00%
0.00%
1000
0.00%
0.00%
0.00%
0
0.00%
0.00%
0.00%
0
0.00%
0.00%
0.00%
1000
0.00%
0.00%
0.00%
TTY
2
2
2
2
2
Process
1000
8000
501000
0
0
0
0
2
L3Aging
NetFlow
Fib
Fib_bg_task
! Output suppressed.
26
27
28
29
10576
47432
6758259
0
615970
51696
1060831
1
0.00%
0.02%
96.62%
0.00%
0.00%
0.00%
96.00%
0.00%
0.00%
0.00%
96.00%
0.00%
! Output suppressed.
124893998234
53019378962495
112579
112578
1
0
295
0
112521
56
2
On the Supervisor Engine 2, the number of FIB entries reduces to half if you have configured RPF check on
the interfaces. This configuration can lead to the software switch of more packets and, consequently, high
CPU utilization.
For additional information about TCAM utilization and optimization, refer to this document:
Cisco Catalyst 6500/6000 Switch High CPU Utilization
Packets/s
100000
2000
100000
500
500
500
500
Burst
100
100
10
10
10
10
Here is an example:
Router(config)# mls ratelimit layer2 l2pt 3000
In order to ratelimit all CEFpunted packets to the MSFC, issue the command that is in this example:
Router(config)# mls ip cef ratelimit 50000
0
243912
68
9
2171455
463
0
112
146
0.00%
9.25%
0.00%
0.00%
8.11%
0.00%
0.00%
7.39%
0.00%
0 RPC aapi_rp
0 SNMP ENGINE
0 RPC pmmp
! Output suppressed.
In this output, the total CPU utilization is 57 percent and the interrupt CPU utilization is 48 percent. Here,
these percentages appear in boldface text. The interrupt switch of traffic by the CPU causes the interrupt CPU
utilization. The command output lists the processes that cause the difference between the two utilizations. In
this case, the cause is the SNMP process.
On the Supervisor Engine that runs CatOS, the output looks like this:
Switch> (enable) show processes cpu
1
2
3
4
Runtime(ms)
0
2
0
0
Invoked
0
261
1
1
uSecs
5Sec
1Min
5Min
0
0.28%
0.00%
0.00%
1000
0.00%
0.00%
0.00%
0
0.00%
0.00%
0.00%
0
0.00%
0.00%
0.00%
TTY
2
2
2
2
Process
! Output suppressed.
61
62
63
727295
18185410
845683
172025
3712736
91691
18000
106000
105000
0.82%
22.22%
0.92%
0.00%
21.84%
0.00%
0.00% 2
21.96% 2
0.00% 2
SptTimer
SptBpduRx
SptBpduTx
In this output, the first process is Kernel and Idle, which shows idle CPU utilization. This process is
normally high, unless some other processes consume CPU cycles. In this example, the SptBpduRx process
causes high CPU utilization.
If the CPU utilization is high due to one of these processes, you can troubleshoot and determine why this
process runs high. But, if the CPU is high due to traffic being punted to the CPU, you need to determine why
the traffic is being punted. This determination can help you identify what the traffic is.
In this output, you can see that the incoming traffic is L3switched instead of Layer 2 (L2)switched. This
indicates that the traffic is being punted to the CPU.
The show processes cpu command tells you whether these packets are regular traffic packets or control
packets.
Router# show processes cpu | exclude 0.00
CPU utilization for five seconds: 91%/50%; one minute: 89%; five minutes: 47%
PID Runtime(ms)
Invoked
uSecs
5Sec
1Min
5Min TTY Process
5
881160
79142
11133 0.49% 0.19% 0.16%
0 Check heaps
98
121064
3020704
40 40.53% 38.67% 20.59%
0 IP Input
245
209336
894828
233 0.08% 0.05% 0.02%
0 IFCOM Msg Hdlr
If the packets are processswitched, you see that the IP Input process runs high. Issue this command in
order to see these packets:
show buffers inputinterface
Router# show buffers inputinterface gigabitethernet 4/1 packet
Buffer information for Small buffer at 0x437874D4
data_area 0x8060F04, refcount 1, next 0x5006D400, flags 0x280
linktype 7 (IP), enctype 1 (ARPA), encsize 14, rxtype 1
if_input 0x505BC20C (GigabitEthernet4/1), if_output 0x0 (None)
inputtime 00:00:00.000 (elapsed never)
outputtime 00:00:00.000 (elapsed never), oqnumber 65535
datagramstart 0x8060F7A, datagramsize 60, maximum size 308
mac_start 0x8060F7A, addr_start 0x8060F7A, info_start 0x0
network_start 0x8060F88, transport_start 0x8060F9C, caller_pc 0x403519B4
source: 100.100.100.1, destination: 100.100.100.2, id: 0x0000, ttl: 63,
TOS: 0 prot: 17, source port 63, destination port 63
08060F70:
08060F80:
08060F90:
08060FA0:
08060FB0:
00000000
3F11EAF3
001A261F
0C0D0E0F
000A 42D17580
11110800 4500002E 00000000
64646401 64646402 003F003F
00010203 04050607 08090A0B
101164
..BQu.
........E.......
?.jsddd.ddd..?.?
..&.............
......d
If the traffic is interrupt switched, you cannot see those packets with the show buffers inputinterface
command. In order to see the packets that are punted to the RP for interrupt switching, you can perform a
Switched Port Analyzer (SPAN) capture of the RP port.
Note: Refer to this document for additional information about interruptswitched versus processswitched
CPU utilization:
High CPU Utilization due to Interrupts section of the document Troubleshooting High CPU
Utilization on Cisco Routers
SPAN RPInband and SPInband
A SPAN for the RP or SP port in Cisco IOS Software is available in Cisco IOS Software Release 12.1(19)E
and later.
This is the command syntax:
test monitor session 166 add {rpinband | spinband} [rx | tx | both]
DelyExced MTUExced
InDiscard OutDiscard
15/1
0
0
0
A quick increase in this number indicates that packets are punted to the MSFC, which causes high CPU
utilization. You can then look at the packets in these ways:
SPAN MSFC port 15/1 or 16/1
SPAN sc0
SPAN MSFC Port 15/1 or 16/1
Set up a SPAN session in which the source is the MSFC port 15/1 (or 16/1) and the destination is an Ethernet
port.
Here is an example:
Console> (enable) set span 15/1 5/10
Console> (enable) show span
Destination
:
Admin Source
:
Oper Source
:
Direction
:
Incoming Packets:
Learning
:
Multicast
:
Filter
:
Status
:
Port 5/10
Port 15/1
None
transmit/receive
disabled
enabled
enabled
active
If you collect a sniffer trace on port 5/10, the sniffer trace shows packets that transmit to and from the
MSFC. Configure the SPAN session as tx in order to capture packets that are only destined to the MSFC, and
not from the MSFC.
SPAN sc0
Set up a SPAN session with the sc0 interface as the source in order to capture frames that go to the Supervisor
Engine CPU.
Console> (enable) set span ?
disable
Disable port monitoring
sc0
Set span on interface sc0
<mod/port>
Source module and port numbers
<vlan>
Source VLAN numbers
Note: For Optical Services Modules (OSMs), you cannot perform a SPAN capture of traffic.
Recommendations
The Supervisor Engine CPU utilization does not reflect the hardware forwarding performance of the switch.
Still, you must baseline and monitor the Supervisor Engine CPU utilization.
1. Baseline the Supervisor Engine CPU utilization for the switch in a steadystate network with normal
traffic patterns and load.
Note which processes generate the highest CPU utilization.
Cisco Catalyst 6500/6000 Switch High CPU Utilization
Related Information
Common CatOS Error Messages on Catalyst 6000/6500 Series Switches
Common Error Messages on Catalyst 6500/6000 Series Switches Running Cisco IOS Software
Troubleshooting Hardware and Common Issues on Catalyst 6500/6000 Series Switches Running
Cisco IOS System Software
Unicast Flooding in Switched Campus Networks
Cisco Catalyst 6500 Series Switches Product Support
LAN Product Support Pages
LAN Switching Support Page
Technical Support & Documentation Cisco Systems
All contents are Copyright 19922005 Cisco Systems, Inc. All rights reserved. Important Notices and Privacy Statement.