说明:
[root@coolnull ~]# free -m total used free shared buffers cached Mem: 995 785 209 0 6 92 -/+ buffers/cache: 686 308 Swap: 478 200 278
可用内存:Available memory=free+buffers+cached,即308=209+6+92
已使用内存:Used memory=used-buffers-cached,即686=785-6-92
而在用zabbix自身的Template OS Linux模版监控服务器时,发现Used memory都偏高。这是因为zabbix通过vm.memory.size[used]这个key获取服务器的已使用内存(Used memory)。但vm.memory.size[used]获取的值(如下所示为used 785)还包含buffers、cached这部份。buffers、cached这部份对服务器来说也是可用的。只不过linux本身是尽可能多地使用内存,只有当内存不足时才会释放buffers、cached空间。
vm.memory.size[available]获取的可用内存倒是挺准确的。因此我们这边就会修改Used memory的key值,让总内存减去可用内存即可获取准确的已使用内存
具体:
1. Configure|Templates|Template OS Linux,选择Items,点击Used memory进入配置,修改前如下图所示
2. 修改Type和Formula
Type选择Calculated
Formula输入(last(“vm.memory.size[total]”)-last(“vm.memory.size[available]”)),用总内存减去可用内存获得准确的已使用内存。
修改完后如下图所示
查看:
过一会再查看就可以看到服务器的Used memory已经是准确的了