07-26-2023 12:52 AM
Hi Team,
In ISE the calculation for memory utilization is given below.
The formula we use for the GUI is: [ (MemTotal - (MemFree+Buffers+Cached))/ MemTotal ]*100.
The SolarWinds calculation for memory utilization is given below.
The operating system calculates the memory utilization by [ (Memtotal - MemFree) / MemTotal ]* 100.
Above these two formulae we get different results. So, do we have any way to calculate the same way in Operating System as how it calculates in GUI.
1) Can we get the OID used for Buffers/Cached to the SolarWinds to calculate the same way as how it calculates in GUI?
07-26-2023 03:30 PM
Bearing in mind that the OS will report the memory "requested" by apps, as well as its own system cache - but in a Hypervisor scenario, you can get different results because not all of the reported "used memory" is actually paged into RAM - so ISE might report that it's using 10GB, but the hypervisor reports that only 3GB is actually paged into RAM. But since we should deploy ISE with 100% reserved RAM, I guess that is a moot point. Still. Having high memory utilisation is not always a problem, because having RAM unused is worse than having to constantly read pages in from disk. I find that ISE reports an almost constant memory usage, with occasional dips as the garbage collector kicks in.
I always start by looking at what the operating system is reporting in the SNMP MIB. In this case the Redhat Linux uses the standard UCD-SNMP-MIB
With snmpwalk you can see the following against an ISE 3.3
abier@labubu-01:~$ snmpwalk -c public -v 2c 172.22.128.20 UCD-SNMP-MIB::memory
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 8192496 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 8164640 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 32719628 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 11836756 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 20001396 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 3213360 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 43852 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 4214732 kB
UCD-SNMP-MIB::memory.18.0 = Counter64: 8192496
UCD-SNMP-MIB::memory.19.0 = Counter64: 8164640
UCD-SNMP-MIB::memory.20.0 = Counter64: 32719628
UCD-SNMP-MIB::memory.21.0 = Counter64: 11836756
UCD-SNMP-MIB::memory.22.0 = Counter64: 20001396
UCD-SNMP-MIB::memory.23.0 = Counter64: 16000
UCD-SNMP-MIB::memory.24.0 = Counter64: 3213360
UCD-SNMP-MIB::memory.25.0 = Counter64: 43852
UCD-SNMP-MIB::memory.26.0 = Counter64: 4214732
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
If you want the OID then you can use the -On argument in snmpwalk - e.g.
snmpwalk -c public -On -v 2c 172.22.128.20 UCD-SNMP-MIB::memTotalReal
.1.3.6.1.4.1.2021.4.5.0 = INTEGER: 32719628 kB
Which lines up with what you see in the ISE CLI
ise33/admin#show memory
memory total memory: 32719628 kB
free memory: 11817332 kB
cached: 4111976 kB
swap-cached: 3328 kB
output of free command:
total used free shared buff/cache available
Mem: 32719628 16638808 11817016 3213360 4263804 12400020
Swap: 8192496 27856 8164640
ISE GUI Reports that 50% of the memory is utilised. So that would mean Total/Used
07-28-2023 02:27 AM
Hi Arne Bier,
Thanks for the information.
Are we able get the OID of Buffer/cache memory from ISE.
If we can get the OID of Buffer/Cache memory that will be useful.
07-29-2023 02:54 PM
UCD-SNMP-MIB::memBuffer = .1.3.6.1.4.1.2021.4.14.0
UCD-SNMP-MIB::memCached = .1.3.6.1.4.1.2021.4.15.0
09-04-2023 02:49 AM
Using the following still doesn't align what is showing in the GUI for memory usage.
[ (MemTotal - (MemFree+Buffers+Cached))/ MemTotal ]*100
Anyone know how to get the same value via SNMP that's displayed in the GUI?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide