SystemEXEC

show processes memory

Displays memory usage statistics for all processes running on the Cisco Nexus switch.

Overview

The 'show processes memory' command is a vital diagnostic tool on Cisco Nexus switches running NX-OS. It provides a detailed snapshot of memory consumption by each running process, enabling network engineers to identify memory leaks, resource contention, and processes that may be approaching their allocated limits. Memory management is critical in network devices because insufficient memory can lead to process crashes, routing protocol failures, and overall system instability. On NX-OS, each process has a configurable memory limit (MemLimit) to prevent a single process from exhausting system resources. This command is typically used during performance troubleshooting, capacity planning, or when investigating unexplained behavior such as route flapping or slow convergence. It fits into a broader troubleshooting workflow: start with 'show system resources' for overall CPU/memory, then drill down with 'show processes memory' to pinpoint offending processes, and finally use 'show processes memory <process>' to focus on a specific process. Platform-specific behavior on Nexus includes the ability to sort output by various memory metrics and filter by process name. The command is non-disruptive and can be run at any time.

Syntax·EXEC
show processes memory [process-name | detail | sort [pid | name | size | limit | base | stack | heap | data | total]]

When to Use This Command

  • Identifying which process is consuming excessive memory, leading to performance degradation.
  • Monitoring memory usage trends during normal operation and under load.
  • Troubleshooting memory leaks by observing process memory growth over time.
  • Verifying that critical processes have adequate memory allocation after configuration changes.

Parameters

ParameterSyntaxDescription
process-nameshow processes memory [process-name]Optional process name to filter output for a specific process. If omitted, all processes are shown.
detailshow processes memory detailProvides more detailed memory information, including per-process memory regions (text, data, stack, heap).
sortshow processes memory sort [pid | name | size | limit | base | stack | heap | data | total]Sorts the output by the specified field. 'total' sorts by total memory used (MemUsed). Useful for identifying top consumers.

Command Examples

Basic memory usage for all processes

show processes memory
PID    ProcessName          MemAlloc    MemLimit    MemUsed    StackUsed    HeapUsed    DataUsed
----- -------------------- ---------- ---------- ---------- ---------- ---------- ----------
1     init                  1M         10M        512K       16K        256K        240K
2     kernel                5M         20M        3M         128K       1M          1.5M
100   bgp                   50M        200M       45M        1M         30M         14M
200   ospf                  30M        100M       28M        512K       18M         9.5M
300   lacp                  10M        50M        8M         256K       5M          2.7M
400   stp                   8M         40M        6M         128K       4M          1.9M
500   sysmgr                20M        100M       15M        1M         10M         4M
600   eth_port_channel      12M        60M        10M        512K       7M          2.5M
700   vpc                   15M        80M        12M        768K       8M          3.2M
800   aclmgr                5M         30M        4M         256K       2.5M        1.2M
900   netstack              25M        150M       20M        2M         12M         6M

Each row shows a process with its PID, name, allocated memory (MemAlloc), memory limit (MemLimit), total memory used (MemUsed), and breakdowns: StackUsed, HeapUsed, DataUsed. High MemUsed relative to MemLimit indicates potential memory pressure.

Memory usage for a specific process (bgp)

show processes memory bgp
PID    ProcessName          MemAlloc    MemLimit    MemUsed    StackUsed    HeapUsed    DataUsed
----- -------------------- ---------- ---------- ---------- ---------- ---------- ----------
100   bgp                   50M        200M       45M        1M         30M         14M

Filters output to show only the BGP process. Useful for focused troubleshooting.

Memory usage sorted by total memory used

show processes memory sort total
PID    ProcessName          MemAlloc    MemLimit    MemUsed    StackUsed    HeapUsed    DataUsed
----- -------------------- ---------- ---------- ---------- ---------- ---------- ----------
100   bgp                   50M        200M       45M        1M         30M         14M
200   ospf                  30M        100M       28M        512K       18M         9.5M
900   netstack              25M        150M       20M        2M         12M         6M
500   sysmgr                20M        100M       15M        1M         10M         4M
700   vpc                   15M        80M        12M        768K       8M          3.2M
600   eth_port_channel      12M        60M        10M        512K       7M          2.5M
300   lacp                  10M        50M        8M         256K       5M          2.7M
400   stp                   8M         40M        6M         128K       4M          1.9M
800   aclmgr                5M         30M        4M         256K       2.5M        1.2M
2     kernel                5M         20M        3M         128K       1M          1.5M
1     init                  1M         10M        512K       16K        256K        240K

Sorts processes by total memory used (MemUsed) in descending order, highlighting the top consumers.

Understanding the Output

The 'show processes memory' output displays memory statistics for each process running on the Nexus switch. The key fields are: PID (process ID), ProcessName (name of the process), MemAlloc (memory allocated to the process), MemLimit (maximum memory allowed for the process), MemUsed (total memory currently used), StackUsed (stack memory used), HeapUsed (heap memory used), and DataUsed (data segment memory used). Healthy values show MemUsed significantly below MemLimit, with no process exceeding 80% of its limit. Problem values include MemUsed approaching or exceeding MemLimit, which can cause process crashes or system instability. Also, abnormal growth in HeapUsed or StackUsed may indicate memory leaks. The 'sort' option helps identify top memory consumers quickly.

Configuration Scenarios

Monitoring BGP memory usage after adding many routes

A Nexus switch is receiving a full BGP table from multiple peers, and memory usage is a concern.

Topology

Nexus-1 --- eBGP --- ISP-1 Nexus-1 --- eBGP --- ISP-2

Steps

  1. 1.Check overall memory with 'show system resources'.
  2. 2.Use 'show processes memory bgp' to see BGP process memory.
  3. 3.Monitor MemUsed vs MemLimit; if approaching limit, consider increasing limit or reducing routes.
Configuration
! Increase BGP memory limit (if supported)
process memory limit bgp 300M

Verify: Run 'show processes memory bgp' again to confirm new limit and usage.

Watch out: Not all Nexus platforms allow changing process memory limits; check documentation.

Identifying a memory leak in OSPF process

OSPF process memory usage grows over time, eventually causing OSPF to restart.

Topology

Nexus-1 --- OSPF --- Router-2 Nexus-1 --- OSPF --- Router-3

Steps

  1. 1.Run 'show processes memory ospf' periodically and log output.
  2. 2.Compare MemUsed over time; if increasing without bound, suspect memory leak.
  3. 3.Open a TAC case with the collected data.
Configuration
! No configuration fix; requires software upgrade or patch.

Verify: After upgrade, monitor OSPF memory usage to confirm stability.

Watch out: Memory leaks may be intermittent; collect data over several days.

Troubleshooting with This Command

When troubleshooting memory issues on Cisco Nexus switches, start by checking overall system health with 'show system resources'. If memory utilization is high, use 'show processes memory sort total' to list processes by memory consumption. Look for processes with MemUsed close to or exceeding MemLimit. Common culprits include routing protocols (BGP, OSPF), especially with large tables, or processes like 'netstack' under heavy traffic. If a specific process is suspected, filter with 'show processes memory <process>'. For persistent issues, collect output at regular intervals to detect growth trends. On NX-OS, the system manager (sysmgr) monitors process memory and may restart processes that exceed their limits; check syslog for messages like 'Process <name> memory usage exceeded limit'. If a process repeatedly crashes, consider increasing its memory limit (if configurable) or reducing the load (e.g., fewer routes, less traffic). For memory leaks, a software upgrade may be necessary. Always compare with baseline values from when the switch was healthy.

CCNA Exam Tips

1.

Know that 'show processes memory' is used to diagnose memory issues; high MemUsed relative to MemLimit is a red flag.

2.

Remember the sort options: pid, name, size, limit, base, stack, heap, data, total – useful for targeted analysis.

3.

On Nexus, memory limits are per-process; a process hitting its limit may be restarted by the system manager.

Common Mistakes

Confusing MemAlloc with MemUsed; MemAlloc is the reserved amount, not necessarily what's in use.

Ignoring the MemLimit column; a process using 90% of its limit is more concerning than one using 50% of a larger limit.

Assuming all memory is physical RAM; some memory may be virtual or shared.

Platform Notes

On Cisco Nexus switches running NX-OS, the 'show processes memory' command provides per-process memory statistics similar to Cisco IOS, but with some differences. NX-OS uses a different memory allocation model; processes have explicit memory limits (MemLimit) that are not present in IOS. In IOS, 'show processes memory' shows memory used but not per-process limits. The NX-OS command also supports sorting and filtering options not available in IOS. Equivalent commands on other platforms: on Juniper Junos, use 'show system processes extensive' or 'show task memory'; on Arista EOS, use 'show processes memory'. On NX-OS, the 'detail' option provides additional memory region breakdowns. Version differences: earlier NX-OS versions may not support the 'sort' parameter; always check the command reference for your specific version. The command is available in all NX-OS modes (EXEC).

Practice for the CCNA 200-301

Test your knowledge with hundreds of CCNA practice questions covering all exam domains.

Practice CCNA Questions