用Telnet/SSH方式监控Linux的内存使用率不正确

用Telnet/SSH方式监控Linux的内存使用率不正确

方法:

1) 把<OPM>/conf/OpManager/application/HostResource.xml中Linux下面的Memory Utilization中的command后面的双引号中的命令替换为:/usr/bin/free -b | awk '{if ($2 ~ /buffers\//) print $2 &quot; &quot; $4; else { if ($1 ~ /Mem:|cache:/) print $2 &quot; &quot; $3;}}'| sed 'N;s/\n/ /' | awk '{if($4!=&quot;&quot;){print ($4*100)/$1}else{print ($2*100)/$1}}'

2) 重启OPM

3) 如果有问题,请把1)中的命令在客户机上执行一下,查看结果是否正确,需要把$quot;替换为"
     并把free -b的截图,以及上述命令的截图发给mes@zohocorp.com.cn
原因:

OPM希望free -b有以下输出:
             total        used        free      shared  buff/cache   available
Mem:     2095575040   256991232   929046528      692224   909537280  1656487936
Swap:    1073737728    29417472  1044320256

但在某些系统下面输出为下面截图所示,和分析命令的预期不符:

             total        used        free      shared buffers cached
Mem:     1598702387 9407029248 6579994624 1433600 35468544 4481409024
-/+ buffers/cache: 4373769728 1141325414
Swap:    2147483238    0  2147483238