Network Management
Disk/volume/RAM/memory calculation in the SolarWinds Platform
How does the SolarWinds Platform calculates Disk / RAM / Memory / Volume from the device.
First published date
Last published date
Overview
In this article describes how the SolarWinds Platform calculates Disk/RAM/Memory/Volume from the device.
Product section
Resolution
First, you need to know what object IDs (OIDS) does the SolarWinds Platform poll for volume information including their types.
How does the SolarWinds Platform calculate Linux O/S based system memory
See the following screenshot for an example from a system running Linux O/S:
You can use the SolarWinds SNMP Walk tool for the node in question in order to find out what values been returned by the Node for required OIDs as below.
| .1.3.6.1.2.1.25.2.3.1.3.1 = String: "Physical RAM" | .1.3.6.1.2.1.25.2.3.1.4.1 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.1 = INTEGER: 1021591 | .1.3.6.1.2.1.25.2.3.1.6.1 = INTEGER: 447260 |
| .1.3.6.1.2.1.25.2.3.1.3.2 = String: "Virtual Memory" | .1.3.6.1.2.1.25.2.3.1.4.2 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.2 = INTEGER: 512034 | .1.3.6.1.2.1.25.2.3.1.6.2 = INTEGER: 52 |
| .1.3.6.1.2.1.25.2.3.1.3.3 = String: "/" | .1.3.6.1.2.1.25.2.3.1.4.3 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.3 = INTEGER: 4232703 | .1.3.6.1.2.1.25.2.3.1.6.3 = INTEGER: 2837178 |
| .1.3.6.1.2.1.25.2.3.1.3.4 = String: "/proc" | .1.3.6.1.2.1.25.2.3.1.4.4 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.4 = INTEGER: 0 | .1.3.6.1.2.1.25.2.3.1.6.4 = INTEGER: 0 |
| .1.3.6.1.2.1.25.2.3.1.3.5 = String: "/dev/pts" | .1.3.6.1.2.1.25.2.3.1.4.5 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.5 = INTEGER: 0 | .1.3.6.1.2.1.25.2.3.1.6.5 = INTEGER: 0 |
| .1.3.6.1.2.1.25.2.3.1.3.6 = String: "/proc/bus/usb" | .1.3.6.1.2.1.25.2.3.1.4.6 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.6 = INTEGER: 0 | .1.3.6.1.2.1.25.2.3.1.6.6 = INTEGER: 0 |
| .1.3.6.1.2.1.25.2.3.1.3.7 = String: "/partB" | .1.3.6.1.2.1.25.2.3.1.4.7 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.7 = INTEGER: 4232699 | .1.3.6.1.2.1.25.2.3.1.6.7 = INTEGER: 2736606 |
| .1.3.6.1.2.1.25.2.3.1.3.8 = String: "/common" | .1.3.6.1.2.1.25.2.3.1.4.8 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.8 = INTEGER: 17502476 | .1.3.6.1.2.1.25.2.3.1.6.8 = INTEGER: 7646375 |
| .1.3.6.1.2.1.25.2.3.1.3.9 = String: "/grub" | .1.3.6.1.2.1.25.2.3.1.4.9 = INTEGER: 1024 | .1.3.6.1.2.1.25.2.3.1.5.9 = INTEGER: 252879 | .1.3.6.1.2.1.25.2.3.1.6.9 = INTEGER: 4303 |
| .1.3.6.1.2.1.25.2.3.1.3.10 = String: "/dev/shm" | .1.3.6.1.2.1.25.2.3.1.4.10 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.10 = INTEGER: 510795 | .1.3.6.1.2.1.25.2.3.1.6.10 = INTEGER: 5422 |
| .1.3.6.1.2.1.25.2.3.1.3.11 = String: "/spare" | .1.3.6.1.2.1.25.2.3.1.4.11 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.11 = INTEGER: 8468466 | .1.3.6.1.2.1.25.2.3.1.6.11 = INTEGER: 8256 |
| .1.3.6.1.2.1.25.2.3.1.3.12 = String: "/proc/sys/fs/binfmt_misc" | .1.3.6.1.2.1.25.2.3.1.4.12 = INTEGER: 4096 | .1.3.6.1.2.1.25.2.3.1.5.12 = INTEGER: 0 |
Calculation
****************** Physical Disks ******************
hrStorageDescr = .1.3.6.1.2.1.25.2.3.1.3.3 = String: "/"
hrStorageAllocationUnits= .1.3.6.1.2.1.25.2.3.1.4.3 = INTEGER: 4096
hrStorageSize .1.3.6.1.2.1.25.2.3.1.5.3 = INTEGER: 4232703
hrStorageUsed = .1.3.6.1.2.1.25.2.3.1.6.3 = INTEGER: 2837178
Calculations :
Volume size 4232703 x 4096 17337151488 Bytes 16.146 GB
Volume used 2837178 x 4096 11621081088 Bytes 10.822 GB
space available 17337151488 - 11621081088 = 5716070400 5.323 GB .
Percentage 10.8/16.14 * 100 65%
****************************************************
hrStorageDescr = .1.3.6.1.2.1.25.2.3.1.3.1 = String: "Physical RAM"
hrStorageAllocationUnits= .1.3.6.1.2.1.25.2.3.1.4.1 = INTEGER: 4096
hrStorageSize .1.3.6.1.2.1.25.2.3.1.5.1 = INTEGER: 1021591
hrStorageUsed = .1.3.6.1.2.1.25.2.3.1.6.1 = INTEGER: 447260
Calculations : Physical RAM
Volume size 1021591 x 4096 4184436736 Bytes 3.897 GB
Volume used 447260 x 4096 1831976960 Bytes 1.706 GB
space available 1831976960 - 4184436736 = 2352459776 2.1 GB
Percentage 1.706/3.897 * 100 43%
*********************************************************
hrStorageDescr = .1.3.6.1.2.1.25.2.3.1.3.2 = String: "Virtual Memory"
hrStorageAllocationUnits= .1.3.6.1.2.1.25.2.3.1.4.2 = INTEGER: 4096
hrStorageSize .1.3.6.1.2.1.25.2.3.1.5.2 = INTEGER: 512034
hrStorageUsed = .1.3.6.1.2.1.25.2.3.1.6.2 = INTEGER: 52
Calculations : Virtual Memory
Volume size 512034 x 4096 2097291264 Bytes 1.953 GB
Volume used 52 x 4096 212992 Bytes 0.0001 GB
space available 212992 - 2097291264 = 2097078272 1.953 GB .
Percentage 0.0001/1.953 * 100 0.0%
For Linux Server for Poller assigned N.Memory.SNMP.NetSnmpReal
If poller assigned
N.Memory.SNMP.NetSnmpReal
/// memTotalReal = 1.3.6.1.4.1.2021.4.5.
/// memAvailReal = 1.3.6.1.4.1.2021.4.6.
/// memCached = 1.3.6.1.4.1.2021.4.15.
/// memBuffer = 1.3.6.1.4.1.2021.4.14.
/// UsedMemory = (totalMem - availMem - cachedMem - bufferMem) * 1024
.1.3.6.1.4.1.2021.4.5.0 = INTEGER: 2073620 (Total )
.1.3.6.1.4.1.2021.4.6.0 = INTEGER: 1869968 (Available )
.1.3.6.1.4.1.2021.4.15.0 = INTEGER: 88008 (cachedMemory )
.1.3.6.1.4.1.2021.4.14.0 = INTEGER: 51868 (BufferMemory )
( 2073620 – 1869968 – 88008 – 51868 ) = 63776
63776 * 1024 = 65306624 bytes
Calculations in SNMP do not match what is found when the OS is queried?
Check to see if the latest supported version of NET-SNMP is installed on the machine:
# snmp --version
Click here for the latest currently supported versions of NET-SNMP.