我打算获取服务器上的RAM使用率,我在自己的PC上尝试了PHP中的SNMP,但是当我想获取RAM的使用率百分比时,返回的不是与系统监视器相比的实际RAM使用率在我的电脑上。
我已经在下面阅读了此解决方案,但仍然没有得到正确的价值
(已用–缓冲区–已缓存)/总* 100 =已用内存百分比
因此您可以获得以下内容(表示为Perl代码):
我的$ memRealTotalOID ='.1.3.6.1.4.1.2021.4.5.0';
我的$ memRealAvailOID ='.1.3.6.1.4.1.2021.4.6.0';
我的$ memRealBuffersOID ='.1.3.6.1.4.1.2021.4.14.0';
我的$ memRealCachedOID ='.1.3.6.1.4.1.2021.4.15.0';
内存计算我的$ memRealUsed = $ memRealTotal-$ memRealAvail;
然后,您可以提醒已使用的RAM百分比:
我的$ realPercent =((($ memRealUsed-$ memRealBuffers-$ memRealCached)/ $ memRealTotal)* 100;
这是我的代码和结果:
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);
当前结果是= 82.55542380
我读错了解决方案或计算错误吗?有没有帮助