Troubleshooting Commands for IOS Devices

General Information

show version

The command show version provides basic information about a device, including hardware resources, software revision, and the configuration register. Notable portions of the command's output have been highlighted below.

Router# show version
Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T5, RELEASE SOFTWARE (fc4)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2008 by Cisco Systems, Inc.
Compiled Wed 30-Apr-08 18:27 by prod_rel_team

ROM: System Bootstrap, Version 12.2(8r)T2, RELEASE SOFTWARE (fc1)

Router uptime is 3 weeks, 2 days, 16 hours, 55 minutes
System returned to ROM by power-on
System image file is "slot0:c3725-adventerprisek9-mz.124-15.T5.bin"

This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.

A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html

If you require further assistance please contact us by sending email to
export@cisco.com.

Cisco 3725 (R7000) processor (revision 0.1) with 124928K/6144K bytes of memory.
Processor board ID JPE0852107G
R7000 CPU at 240MHz, Implementation 39, Rev 3.3, 256KB L2 Cache
2 FastEthernet interfaces
9 Serial interfaces
DRAM configuration is 64 bits wide with parity disabled.
55K bytes of NVRAM.
31360K bytes of ATA System CompactFlash (Read/Write)
250880K bytes of ATA Slot0 CompactFlash (Read/Write)

Configuration register is 0x2102

The highlighted portions above describe, respectively:

  • Running IOS version
  • Uptime
  • Reason for the last boot (e.g. power-on or reload)
  • Location of the running IOS image
  • Available DRAM displayed as processor memory / I/O memory (add these two numbers to get the total available DRAM)
  • Device serial number
  • CPU description
  • Installed interfaces, including modules
  • Available NVRAM (default location for configuration storage)
  • Available Flash
  • Configuration register

show inventory

The command show inventory provides a compiled list of all hardware components present in the device and information pertinent to each, including its human-friendly name and description, part ID (PID), hardware revision (VID), and serial number (SN).

Router# show inventory
NAME: "3725 chassis", DESCR: "3725 chassis"
PID:                   , VID: 0.1, SN: JPE0852107G

NAME: "WAN Interface Card - DSU/CSU T1 Fractional on Slot 0 SubSlot 0", DESCR: "WAN Interface Card - DSU/CSU T1 Fractional"
PID: WIC-1DSU-T1=      , VID: 1.5, SN: 31638068

NAME: "Four Port High-Speed Serial on Slot 1", DESCR: "Four Port High-Speed Serial"
PID: NM-4T=            , VID: 1.1, SN: 19372964

NAME: "Four Port High-Speed Serial on Slot 2", DESCR: "Four Port High-Speed Serial"
PID: NM-4T=            , VID: 1.1, SN: 20591382

show environment

The command show environment displays hardware diagnostic information to include power supply status, fan speed and status, and system and environmental temperatures. The output and detail provided by the command varies widely by platform.

The following example was taken from a Cisco 2811 router:

Router# show environment

Main Power Supply is AC

 Fan 1 OK
 Fan 2 OK
 Fan 3 OK

Fan Speed : Normal

System Temperature: 28 Celsius (normal)

Environmental information last updated 00:00:06 ago

This second example was taken from a Cisco Catalyst 3550.

Switch# show env all
FAN is OK
TEMPERATURE is OK
POWER is OK
RPS is NOT PRESENT

show tech-support

The command show tech-support (commonly shortened as show tech) is an alias for a number of other CLI commands (including many of the commands discussed on this page). It exists as a convenient method for users to pull a large amount of information about a device, typically to be submitted to Cisco TAC in the course of a support request.

As the output of this command can be quite lengthy, it is advised to perform this command via Telnet or SSH versus a physical serial console where possible. Further, it is a good idea to capture the output of this command directly to a file on disk to avoid having to go back and copy/paste the entire thing. For example, this can be accomplished by OpenSSH on Linux using the following syntax:

ssh user@IP_address show tech-support > file_name

CPU Utilization

show processes

Router# show processes
CPU utilization for five seconds: 0%/0%; one minute: 0%; five minutes: 0%
 PID QTy       PC Runtime (ms)    Invoked   uSecs    Stacks TTY Process
   1 Cwe 60027CB0            0         76       0 5412/6000   0 Chunk Manager   
   2 Csp 60BF4CB8          728     342627       2 2512/3000   0 Load Meter      
   4 Mwe 62B6F264            0          1       023360/24000  0 EDDRI_MAIN      
   5 Lst 60024208      1623280     203694    7969 5316/6000   0 Check heaps     
   6 Cwe 6002BD48            0          3       0 5436/6000   0 Pool Manager    
   7 Mst 6147BBD8            0          2       0 5476/6000   0 Timers          
   8 Mwe 6028A658            0          1       011624/12000  0 OIR Handler     
   9 Mwe 60550470            0          1       023556/24000  0 Crash writer    
  10 Msi 6069BF8C            0      57106       0 5480/6000   0 Environmental mo
  11 Mwe 60DA7164            0      28553       0 5696/6000   0 IPC Dynamic Cach
  12 Mwe 60D98034            0          1       0 5652/6000   0 IPC Zone Manager
  13 Mwe 60D9724C           32    1713101       0 5568/6000   0 IPC Periodic Tim
  14 Mwe 60D9709C           36    1713101       0 5628/6000   0 IPC Deferred Por
  15 Mwe 60D97D0C            0          1       0 5524/6000   0 IPC Seat Manager
  16 Mwe 60D9D620            0          1       0 5664/6000   0 IPC BackPressure
  17 Mwe 60E3B560         7736      57319     134 4588/6000   0 ARP Input       
  18 Mwe 60E381F4           40    1786741       0 4864/6000   0 ARP Background  
  19 Mwe 60EFE0BC            0          2       0 5432/6000   0 ATM Idle Timer  
  20 Mwe 6142C12C            0          2       0 5468/6000   0 AAA high-capacit
  21 Lwe 61430134            0          1       0 5760/6000   0 AAA_SERVER_DEADT
  22 Mwe 614A8034            0          1       011604/12000  0 Policy Manager  
...

The top line of this output shows the CPU utilization as averaged over the last five seconds, the last minute, and the last five minutes. These three separate calculations allow the administrator to determine whether heavy CPU utilization is a momentary spike or has been prolonged. The five-second CPU utilization reading is broken into two percentages: the first indicates total CPU utilization, whereas the second indicates how much CPU time was spent processing hardware interrupts (e.g. software switching).

Column Headings
PID
Process ID
Q
Queue priority (Critical, High, Medium, or Low)
Ty
Scheduler state
PC (Program counter)
Process address in memory
Runtime
Amount of CPU time the process has consumed, in milliseconds
Invoked
The number of times this process has run since boot
uSecs
Average time the process runs per invocation (in microseconds)
Stacks
The amount of stack space (executable memory) available to the process expressed as least ever available / total allocated (in bytes)
TTY
The terminal that controls the process (typically 0)
Process
Process name

More detailed information about a specific process can be retrieved by appending a PID to the command show processes:

Router# show processes 1
Process ID 1 [Chunk Manager], TTY 0
Memory usage [in bytes]
  Holding: 84476, Maximum: 86524, Allocated: 79456, Freed: 16016
  Getbufs: 0, Retbufs: 0, Stack: 5412/6000
CPU usage
  PC: 60027CB0, Invoked: 76, Giveups: 0, uSec: 0
  5Sec: 0.00%, 1Min: 0.00%, 5Min: 0.00%, Average: 0.00%
  Age: 1714492984 msec, Runtime: 0 msec
  State: Waiting for Event, Priority: Critical

show processes cpu

The command show processes cpu displays the 5sec/1min/5min CPU utilization averages per process, and includes much of the information displayed by show processes. This command is typically issued with the argument sorted appended, to order processes by highest CPU utilization.

Router show processes cpu sorted
CPU utilization for five seconds: 1%/0%; one minute: 0%; five minutes: 0%
 PID Runtime(ms)   Invoked      uSecs   5Sec   1Min   5Min TTY Process 
   5     1624768    203878       7969  0.73%  0.11%  0.07%   0 Check heaps      
 131        2348   3429726          0  0.08%  0.02%  0.00%   0 DHCPD Receive    
  81         420  53554234          0  0.08%  0.06%  0.08%   0 ACCT Periodic Pr 
  85         348  53554234          0  0.08%  0.05%  0.06%   0 IP ARP Retry Age 
   1           0        76          0  0.00%  0.00%  0.00%   0 Chunk Manager    
   2         732    342945          2  0.00%  0.02%  0.00%   0 Load Meter       
   8           0         1          0  0.00%  0.00%  0.00%   0 OIR Handler      
   4           0         1          0  0.00%  0.00%  0.00%   0 EDDRI_MAIN       
   6           0         3          0  0.00%  0.00%  0.00%   0 Pool Manager     
   7           0         2          0  0.00%  0.00%  0.00%   0 Timers           
   9           0         1          0  0.00%  0.00%  0.00%   0 Crash writer     
  13          32   1714692          0  0.00%  0.00%  0.00%   0 IPC Periodic Tim 
  14          36   1714692          0  0.00%  0.00%  0.00%   0 IPC Deferred Por 
  15           0         1          0  0.00%  0.00%  0.00%   0 IPC Seat Manager 
  16           0         1          0  0.00%  0.00%  0.00%   0 IPC BackPressure 
  10           0     57159          0  0.00%  0.00%  0.00%   0 Environmental mo 
  11           0     28579          0  0.00%  0.00%  0.00%   0 IPC Dynamic Cach 
  19           0         2          0  0.00%  0.00%  0.00%   0 ATM Idle Timer   
  20           0         2          0  0.00%  0.00%  0.00%   0 AAA high-capacit 
  12           0         1          0  0.00%  0.00%  0.00%   0 IPC Zone Manager 
  17        7744     57333        135  0.00%  0.00%  0.00%   0 ARP Input    
...  

show processes cpu history

The command show processes cpu history provides a less detailed, longer range view of CPU utilization graphed as averages over three time periods: 60 seconds, 60 minutes, and 72 hours (3 days):

Router# show processes cpu history

Router      08:56:32 PM Wednesday Mar 20 2002 UTC

11111               1111111111                
100                                                             
 90                                                             
 80                                                             
 70                                                             
 60                                                             
 50                                                             
 40                                                             
 30                                                             
 20                                                             
 10                                                             
   0....5....1....1....2....2....3....3....4....4....5....5....6
             0    5    0    5    0    5    0    5    0    5    0
               CPU% per second (last 60 seconds)

4                                                    
    12111118111112311211111111112121111111111111111 111111111111
100                                                             
 90                                                             
 80                                                             
 70                                                             
 60                                                             
 50        *                                                    
 40        *                                                    
 30        *                                                    
 20        *                                                    
 10        *                                                    
   0....5....1....1....2....2....3....3....4....4....5....5....6
             0    5    0    5    0    5    0    5    0    5    0
               CPU% per minute (last 60 minutes)
              * = maximum CPU%   # = average CPU%

322323313323314323227333223133233243132222432123223323234233234233234421
    696335151042143150751006562704761600717686027772983260911322873606244196
100                                                                         
 90                                                                         
 80                                                                         
 70                     *                                                   
 60                     *                                                   
 50                     *                                                   
 40 *    *        *     *  *       *  *       *             *    **  *  **  
 30 **** ** ** ** ************* ******** ******** *********** ******** **** 
 20 ************* **********************************************************
 10 ************************************************************************
   0....5....1....1....2....2....3....3....4....4....5....5....6....6....7..
             0    5    0    5    0    5    0    5    0    5    0    5    0  
                   CPU% per hour (last 72 hours)
                  * = maximum CPU%   # = average CPU%

Each column is led by a three-digit number (displayed vertically) indicating the maximum CPU utilization recorded during the time span represented by that column.

On the graph, asterisks (*) are used to indicate maximum CPU utilization, and hash marks (#) are used to indicate average CPU utilization, both rounded to the nearest ten percent. An absence of asterisks in a column indicates that maximum CPU utilization was not high enough to display (i.e., it was less than five percent). Likewise, an absence of hash marks within a column means that average CPU utilization for that period was not high enough to display.

show platform cpu packet buffered

The command show platform cpu packet buffered will display all packets being sent to the CPU. If you notice one source with a high number of repeated forwards to the CPU, it's a good place to start looking at that host.

Switch# show platform cpu packet buffered
Total Received Packets Buffered: 1024
-------------------------------------
Index 0:
296 days 1:22:45:92525 - RxVlan: 203, RxPort: Te6/2
Priority: High, Tag: Dot1Q Tag, Event: 21, Flags: 0x40, Size: 66
Eth: Src 00:24:F9:AF:10:46 Dst 01:00:5E:00:00:02 Type/Len 0x0800
Ip: ver:IpVersion4 len:20 tos:192 totLen:48 id:0 fragOffset:0 ttl:1 proto:udp
    src: 172.21.0.131 dst: 224.0.0.2 firstFragment lastFragment
Remaining data: 
 0: 0x7  0xC1 0x7  0xC1 0x0  0x1C 0x47 0xCE 0x0  0x0  
10: 0x8  0x3  0xA  0x64 0x17 0x0  0x63 0x69 0x73 0x63 
20: 0x6F 0x0  0x0  0x0  0xAC 0x15 0x0  0x81 0x31 0x71

Index 1:
296 days 1:22:45:110074 - RxVlan: 1143, RxPort: Gi8/25
Priority: Normal, Tag: No Tag, Event: 20, Flags: 0x440, Size: 106
Eth: Src 00:1E:C2:14:E8:59 Dst 00:26:0B:97:B5:FF Type/Len 0x0800
Ip: ver:IpVersion4 len:20 tos:16 totLen:88 id:16393 fragOffset:0 ttl:63 proto:tcp
    src: 172.21.14.141 dst: 172.21.10.25 firstFragment lastFragment
Remaining data: 
 0: 0xE9 0xBE 0x0  0x16 0x86 0x2D 0x4E 0xC1 0xB  0x6D 
10: 0x42 0x7E 0x50 0x18 0xFF 0xFF 0xB3 0x5  0x0  0x0  
20: 0x84 0x2E 0xA6 0x85 0x2D 0xBF 0xCA 0x3D 0x1A 0xA  

debug platform packet all

The command debug platform packet all buffer will identify traffic that hits the CPU in a circular buffer. This is useful when a processor is being hit hard and you need to identify the cause and is used in conjunction with the show platform cpu packet buffered command.

Switch# debug platform packet all buffer
platform packet debugging is on

Memory Utilization

show memory

The show memory command displays memory statistics. The topmost portion of the output shows a summary of all available memory. Statistics are then displayed individually per pool. For example, processor memory might be shown first; if you hit q, the output will jump to the next pool (typically I/O memory).

Router# show memory
                Head    Total(b)     Used(b)     Free(b)   Lowest(b)  Largest(b)
Processor   6611C330    27130896    20030868     7100028     5737028     5471568
      I/O    7A00000     6291456     4822952     1468504     1437984     1468476

Processor memory

Address      Bytes     Prev     Next Ref     PrevF    NextF Alloc PC  what
6611C330 0000499688 00000000 66196348 000  674C827C 657AB608 60BEE0F0  (coalesced)
66196348 0000000404 6611C330 6619650C 001  -------- -------- 600280EC  *Init*
6619650C 0000020004 66196348 6619B360 001  -------- -------- 600278C4  Managed Chunk Queue Elements
6619B360 0000010004 6619650C 6619DAA4 001  -------- -------- 62AF3780  List Elements
6619DAA4 0000005004 6619B360 6619EE60 001  -------- -------- 62AF37B0  List Headers
6619EE60 0000000164 6619DAA4 6619EF34 001  -------- -------- 6362E328  *Init*
6619EF34 0000000028 6619EE60 6619EF80 001  -------- -------- 6027B140  *Init*
6619EF80 0000000028 6619EF34 6619EFCC 001  -------- -------- 6027B140  *Init*
6619EFCC 0000000164 6619EF80 6619F0A0 001  -------- -------- 6362E328  *Init*
6619F0A0 0000000240 6619EFCC 6619F1C0 001  -------- -------- 60BF6098  *Init*
6619F1C0 0000004388 6619F0A0 661A0314 001  -------- -------- 6149147C  TTY data
661A0314 0000002004 6619F1C0 661A0B18 001  -------- -------- 6148C734  TTY Input Buf
661A0B18 0000001004 661A0314 661A0F34 001  -------- -------- 6148C768  TTY Output Buf
661A0F34 0000000164 661A0B18 661A1008 001  -------- -------- 6362E328  *Init*
661A1008 0000000484 661A0F34 661A121C 001  -------- -------- 62AFE568  Watched Message Queue
661A121C 0000000068 661A1008 661A1290 001  -------- -------- 636072A4  *Init*
661A1290 0000000132 661A121C 661A1344 001  -------- -------- 60288468  *Init*
661A1344 0000000164 661A1290 661A1418 001  -------- -------- 6362E328  *Init*
...

show processes memory

The command show processes memory displays memory usage per process. Like show process cpu, the argument sorted can be appended to sort processes by highest memory consumption (the Holding column).

Router# show processes memory sorted
Processor Pool Total:   27130896 Used:   20038712 Free:    7092184
      I/O Pool Total:    6291456 Used:    4822944 Free:    1468512

PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
   0   0   38250120   14754788   20622048          0          0 *Init*          
  25   0     264540          0     273864     113400          0 EEM ED Syslog   
 195   0     247992          0     255060          0          0 QOS_MODULE_MAIN 
 101   0     241000       1052     242620          0          0 EAPoUDP Process 
 231   0     161348      10404     167804          0          0 EEM Server      
 131   0     104832        252     103512          0          0 DHCPD Receive   
   4   0      65588          0      90656          0          0 EDDRI_MAIN      
   1   0      79456      16016      84476          0          0 Chunk Manager   
 206   0      66852          0      79920          0          0 Crypto IKEv2    
 208   0      76288      10532      78824          0          0 IPSEC key engine
 111   0      75976       2360      74100          0          0 CEF process     
 159   0      66544        252      73360          0          0 HTTP Process    
 210   0      45300       3216      67152          0          0 Crypto ACL      
  58   0      57904        252      64720          0          0 VNM DSPRM MAIN  
 193   0        940          0      62008          0          0 http client proc
  81   0      49384          0      56452          0          0 ACCT Periodic Pr
  85   0      49384          0      56452          0          0 IP ARP Retry Age
 178   0      45988        504      54552          0          0 Crypto WUI      
  17   0      45980        476      52572          0          0 ARP Input       
...

The topmost portion of the output displays memory utilization per pool. Total, used, and free memory is shown (in kilobytes?), such that used + free = total.

Column Headings

PID
Process ID
TTY
Terminal to which the process belongs (typically 0)
Allocated
Memory allocated by this process since boot (in bytes)
Freed
Memory freed by this process since boot (in bytes)
Holding
Memory currently in use by this process (in bytes)
Getbufs
Number of packet buffers allocated by this process since boot
Retbufs
Number of packet buffers returned by this process since boot
Process
Process name

show region

The command show region shows how physical memory has been partitioned for use by IOS.

Router# show region
Region Manager:

Start         End     Size(b)  Class  Media  Name
 0x07A00000  0x07FFFFFF     6291456  Iomem  R/W    iomem
 0x60000000  0x679FFFFF   127926272  Local  R/W    main
 0x60008930  0x63639A53    56824100  IText  R/O    main:text
 0x6363BCF0  0x65778E4F    34853216  IData  R/W    main:data
 0x650325B0  0x6512E4EF     1032000  Local  R/W    data:firmware
 0x65778E50  0x6611C32F    10106080  IBss   R/W    main:bss
 0x6611C330  0x679FFFFF    26098896  Local  R/W    main:heap
 0x80000000  0x879FFFFF   127926272  Local  R/W    main:(main_k0)
 0xA0000000  0xA79FFFFF   127926272  Local  R/W    main:(main_k1)

Column Headings

Start
Physical beginning of region
End
Physical end of region
Size
Size of the region (in bytes)
Class
Class of the memory, one of the following:
  • Iomem - I/O memory (packet buffers)
  • Local
  • Itext - Image text memory
  • IData - Image data memory
  • IBss - Image blind source separation (BSS) memory
Media
Type of access (read/write or read-only)
Name
Name of the region

show buffers

The command show buffers displays statistics about the buffers available to hold packets in I/O memory.

Router# show buffers
Buffer elements:
     1118 in free list (1119 max allowed)
     1197443 hits, 0 misses, 619 created

Public buffer pools:
Small buffers, 104 bytes (total 50, permanent 50, peak 83 @ 2w6d):
     45 in free list (20 min, 150 max allowed)
     1213522 hits, 11 misses, 33 trims, 33 created
     0 failures (0 no memory)
Middle buffers, 600 bytes (total 25, permanent 25, peak 49 @ 2w6d):
     23 in free list (10 min, 150 max allowed)
     51695 hits, 8 misses, 24 trims, 24 created
     0 failures (0 no memory)
Big buffers, 1536 bytes (total 50, permanent 50):
     50 in free list (5 min, 150 max allowed)
     33995 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
VeryBig buffers, 4520 bytes (total 10, permanent 10):
     10 in free list (0 min, 100 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Large buffers, 5024 bytes (total 0, permanent 0):
     0 in free list (0 min, 10 max allowed)
...

The topmost portion of the output displays compiled statistics for all buffer types.

The following example is used for illustration to explain the output of this command:

Small buffers, 104 bytes (total 50, permanent 50, peak 83 @ 2w6d):
     45 in free list (20 min, 150 max allowed)
     1213522 hits, 11 misses, 33 trims, 33 created
     0 failures (0 no memory)
  • Each buffer in this pool is 104 bytes in length
  • There are a total of 50 buffers in this pool
  • Of all of the buffers currently in the pool, 50 (all) of them are permanent
  • The highest number of buffers ever in this pool since boot is 83

  • 45 of the 50 buffers are currently free

  • The minimum number of free buffers to be maintained in this pool is 20
  • The maximum number of free buffers to be maintained in this pool is 150

  • This pool has fulfilled 1213522 buffer requests since boot

  • The number of free buffers has fallen below the minimum 11 times since boot
  • 33 extra buffers were created and later trimmed from the pool (83 - 50 = 33)

  • This pool has failed to fulfill a buffer request 0 times

  • 0 of these failures were due to a shortage of available memory

Assigned Categories

  • None

Referenced By

  • None