使用SNMP无法获得PHP中的实际当前使用情况和可用RAM

时间:2018-09-05 06:25:31

标签: php ubuntu snmp ram net-snmp

我打算获取服务器上的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

同时,系统监视器显示(89%): enter image description here

我读错了解决方案或计算错误吗?有没有帮助

0 个答案:

没有答案