一、前言
最近开始搭建监控系统,发现内存的监控类型特别多,项目之间有差不多,还有缓存是算用了的内存还是没用的,一直没有什么概念;并且不同系统版本命令的版本又不一样,这样就造成了统一监控的困难。
二、如何查看内存
2.1 free命令
- centos6系统
- centos7系统
可以看到不同版本的free命令显示的结果不一样
2.2 /proc/meminfo
/proc/meminfo是内核读到的内存信息,相对free命令来说是比较详细的
三、内存的计算方法
3.1 系统内存
- 系统可用内存:MemFree = MemTotal - MemUsed
- 系统已用内存:MemUsed = MemTotal - MemFree
3.2 物理内存
- 物理可用内存:-/+Free = MemFree + MemBuffers + MemCache
- 物理已用内存:-/+Used = MemTotal - MemFree - MemBuffers - MemCache
四、总结
像我们看内存情况,都是看看还剩多少内存可以启动一个新的程序,所以针对不同的操作系统,我们监控的时候应该使用一下的计算方法
- centos6新程序可用内存 = MemFree + MemBuffers + MemCache
- centos7新程序可用内存 = memtotal - available
- 内存使用率 = 可用内存 / 总内存
五、参考
free和/proc/meninfo详细介绍:https://blog.youkuaiyun.com/weixin_39585035/article/details/112632863