Summary
Question
Certain Cisco network devices can have more than one memory pool. There are various IOS commands that will display different memory pools.
For example:
>sh proc mem
Total: 7837952, Used: 5559060, Free: 2278892 <-- Shows Total of both Processor & I/O memory
If utilization is manually calculated using the total of all of the memory pools together, then the resultant calculation will not match the utilization value found in OVPI. In this case the utilization using the values from sh proc mem yield a memory utilization of 71% while OVPI shows a utilization of around 86%.
Answer
The memory values seen in the reports are taken ONLY from the processor memory pool. This is by design and due to the fact that only the processor pool is required to be supported by the CISCO-MEMORY-POOL-MIB. All other memory pools are filtered out by OVPI during the transformation process. Taking this into account we see that the utilization numbers are indeed correct.
Here is the correct IOS command to use:
>sh mem
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 80BA6420 4803552 4163416 640136 163068 476572 <-- 86.67% utilized Processor memory
7837952 5560264 2277688 <-- 70.94% utilized for both Processor & I/O memory
In this case, 86% Memory utilization is the value that was found in OVPI.
For reference, here is the description of memory pools from the CISCO-MEMORY-POOL-MIB.
CiscoMemoryPoolTypes:
Represents the different types of memory pools that
may be present in a managed device. Memory pools can
be roughly categorized into two groups, predefined
pools and dynamic pools. The following pool types
are currently predefined:
1: processor memory
2: i/o memory
3: pci memory
4: fast memory
5: multibus memory
Dynamic pools will have a pool type value greater than
any of the predefined types listed above.
Note that only the processor pool is required to be
supported by all devices. Support for other pool types
is dependent on the device being managed