I've been tasked with writing an app that monitors routers for cpu, memory and interface stats and it's pretty much gone OK until I started examining memory usage numbers for 3600 and 7140 routers.
What I'm seeing is that the output of the show memory command does not account for all of the memory in the router, more specifically it does not reconcile with the amount of memory reported by the show version command.
For example, a 7140 reports that it has 320 MB in the output of show version and is split between the processor and I/O pools like so:
"... 253952K/73728K bytes of memory"
When I do a show mem I get (summarised):
Summing the values in the three Total columns comes to ~290 MBs., a shortfall of 30 MB!
I'm guessing that I don't know enough about the memory architecture, can anyone tell me where the memory is going?
What I've noticed from looking at the numbers from various routers is that the I/O pool numbers reconcile with the split reported by show version, so the missing memory is somehow related to the processor pool? Does the show memory command exclude the boot image perhaps?
The application monitors the routers via SNMP and uses the CISCO-MEMORY_MIB for its data source. The MIB numbers are the same as those reported by show memory. I'm hoping I'll avoid support calls from customers if I can answer this question!