Im planning to fetch RAM usage on server,i tried SNMP in PHP on my own pc but when i wanna get the percentage usage of RAM,that return is not the real RAM usage compare with system monitor on my pc.
i have read this solution below but still i didnt get right value
(Used – buffers – cached) / Total * 100 = % memory used
So you could get the following (expressed as Perl code):
my $memRealTotalOID = '.1.3.6.1.4.1.2021.4.5.0';
my $memRealAvailOID = '.1.3.6.1.4.1.2021.4.6.0';
my $memRealBuffersOID = '.1.3.6.1.4.1.2021.4.14.0';
my $memRealCachedOID = '.1.3.6.1.4.1.2021.4.15.0';
Memory Calculations my $memRealUsed = $memRealTotal - $memRealAvail;
Then you can alert on % RAM used:
my $realPercent = (($memRealUsed - $memRealBuffers - $memRealCached )/ $memRealTotal) * 100;
Here is my code and the result:
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$memRealTotalOID = snmpget("127.0.0.1", "public", ".1.3.6.1.4.1.2021.4.5.0");
$memRealAvailOID = snmpget("127.0.0.1", "public", ".1.3.6.1.4.1.2021.4.6.0");
$memRealBuffersOID = snmpget("127.0.0.1", "public",'.1.3.6.1.4.1.2021.4.14.0');
$memRealCachedOID = snmpget("127.0.0.1", "public",'.1.3.6.1.4.1.2021.4.15.0');
$memRealUsed = $memRealTotalOID - $memRealAvailOID;
$realPercent = (($memRealUsed - $memRealBuffersOID - $memRealCachedOID) / $memRealTotalOID) * 100;
print_r($realPercent);
the current result is = 82.55542380
meanwhile system monitor is showing (89%):
Did i read wrong solution or wrong calculation?Any help pls