Dell Networking - SmartFabric OS10: Identifying Memory Utilization
Summary: In certain scenarios, a Dell PowerSwitch running OS10 may trigger monitoring systems to alert for low memory availability.
Instructions
Index
Applicable Platforms
Description
SNMP OID
OID for Available Memory
OS10 versions 10.5.3.0 and older
Related Linux documentation
Showing memory utilization from the command line
Showing memory resources available as a percentage
Applicable Platforms and Firmware
All Platforms supporting OS10 firmware
Description
SNMP monitoring systems poll the available free memory using appropriate OIDs and display trends in memory utilizations and can incorrectly trigger alerts by comparing them against the total memory of the system. This however, may be a misleading indicator as the "free memory" component is not the only indicator for total available memory in the system. The memory held by buffer/cache should also be considered. The linux kernel frees buff/cache memory as required.
A sample snippet of "show processes node-id 1" CLI output indicating memory utilization is as follows.
----------------------------------- show processes node-id 1 -------------------
Top - 09:28:16 up 86 days, 22:23, 1 user, load average: 2.31, 1.98, 1.70
Tasks: 305 total, 1 running, 299 sleeping, 0 stopped, 5 zombie.
%Cpu(s): 10.7 us, 6.6 sy, 0.0 ni, 81.8 id, 0.1 wa, 0.0 hi, 0.8 si, 0.0 st
KiB Mem : 8126280 total, 809620 free, 4074872 used, 3241788 buff/cache
KiB Swap: 812624 total, 812624 free, 0 used. 3724916 avail Mem
Having this value printed on the same line as swap memory could be misleading in that this value could be interpreted as available swap memory. There is a period (.) after the string "used" on the KiB swap line indicating that the statistics related to swap ends there. In reality, this 'avail Mem' is statistic for the whole system.
As per the above snippet, the free memory may appear to be ~ 10% of total memory and the system may seem to be experiencing a low memory condition.
% Free ==
= ~10%
However, it has to be considered that the linux kernel frees buff/cache memory as required. Reference the "available memory" indicated on the next line of the output which considers the buffer/cache. As per that value, there is still about 45% of memory available in the system.
% Availability ==
= ~45%
Inference using SNMP OID
OS10 Memory OID's
Total RAM free: .1.3.6.1.4.1.2021.4.6.0
Total RAM + Swap free: .1.3.6.1.4.1.2021.4.11.0
A new OID was added in the 10.5.3.0 OS10 release which gives the value of 'available memory' as in the 'show processes node-id 1' or 'top'. See example output above.
The OID .1.3.6.1.4.1.674.11000.5000.100.4.1.1.3.1.15.1 from DELLEMC-OS10-CHASSIS-MIB may be added in monitoring tools to get the value of 'avail Mem'.
OS10 versions prior to 10.5.3.0 (End of Support)
On versions prior to 10.5.3.0, there was no direct OID available for available memory.
If the "used memory" is not showing a consistent increase (or) the available memory does not show a consistent decrease, the system does not exhibit symptoms of a memory leak. Under certain legitimate circumstances, buff/cache holds a larger chunk of memory. This may not be accounted by a standard SNMP monitoring tool that plots utilization trends based on free memory, thus giving a perception of memory depletion in the system. This allocation depends upon how the process uses the memory and how the kernel manages the buff/cache memory internally.
From the Linux MAN page for 'top' also known as 'show process node-id 1':
The command 'show process node-id 1' shows the memory utilization as pulled from the linux command 'top'. From the linux MAN page regarding the available memory stat:
https://man7.org/linux/man-pages/man1/top.1.html
"The avail number on line 2 is an estimation of physical memory available for starting new applications, without swapping. Unlike the free field, it attempts to account for readily reclaimable page cache and memory slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free."
To show the memory utilization using command line:
The command system "free" outputs the following:
OS10# system "free"
total used free shared buff/cache available
Mem: 16386852 2414376 13165208 1264 807268 13670376
Swap: 1638684 0 1638684
To show the memory utilization as a percentage:
OS10# system "free | grep Mem | awk '{print $7/$2 * 100 }'"
83.4157 <~~~~This is free memory as a percentage of total memory.



