Router – TAC Response on the error( %SYS-2-MALLOCFAIL: Memory allocation)

memoryroutertroubleshooting

I hope you can offer me some assistance with my case, we have a Cisco router 2800 series ,having the error ( %SYS-2-MALLOCFAIL: Memory allocation),
(and if restarted the router it works OK for while.

our admin who is responsible for opening case with TAC contacted them and the answer from them was as follows, but we did not understand it so, can you explain this?


SHOW PROCESS MEMORY NOTIFICATIONS (if any)

INFO: The output of 'show process memory' only shows the memory associated with
the processor and does not identify other memory such as I/O, Fast, VM, etc. To
receive a statistical analysis on these types of memory, submit the first page of
output from the 'show memory' and 'show version' commands to Output Interpreter.
NOTE: The types of memory vary depending on router platform and installed modules.

INFO: Processor memory utilization is 11.22801%.
INFO: Processor memory or main memory stores the running configuration and routing
tables. The Cisco IOS software executes from main memory.
INFO: The amount of processor memory required by the router is affected by the Cisco
IOS version used, the size of the network and by the access list configurations.
Ensure that an optimal IOS version has been chosen.

INFO: The top 3 processes that are holding less than 1 MB of memory are:
– 'Chunk Manager' is holding 964368 bytes
– 'Exec' is holding 337640 bytes
– 'LICENSE AGENT' is holding 37592 bytes

and

ERROR MESSAGE NOTIFICATIONS (if any)

ERROR: No Error message was found.
TRY THIS: Ensure that the error message has the following format:
%FACILITY-SEVERITY-MNEMONIC:
Some examples would be:
%SYS-2-MALLOCFAIL:
%PIX-1-103001:
Resubmit the output as necessary.

Best Answer

The most common reason I've seen for alloc failures has been serious misconfiguration of the default route -- ip route 0.0.0.0 0.0.0.0 f0/0 will cause this because it's proxy-arp, and the ARP table will grow to an insane size.

A distant second place goes to dynamic routing protocols causing severe memory fragmentation.

We (and TAC) will need a lot more information to debug this. The first place I would suggest looking is the output of show memory failures alloc after failures are happening. (before rebooting)

Note: because memory is relatively cheap (when not bought from Cisco), I tend to load my routers with as much memory as they'll hold.