标签:node bytes 内存 监控 memory 使用率 Buffers buffers
debian之类的系统认为:
可用内存=free的内存+cached的内存+buffers的内存
SUSE之类的系统则认为:
可用内存=free的内存+cached的内存+buffers的内存+SReclaimable的内存
cat /proc/meminfo 信息如下:
需要使用的指标有:MemTotal,MemFree,Buffers,Cached,SReclaimable
MemTotal:总内存大小
MemFree: 空闲内存大小
Buffers和Cached:磁盘缓存的大小
SReclaimable:在linux内核中会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry。这么这些对象如果每次构建的时候就向内存要一个页,而其实际大小可能只有几个字节,这样就非常浪费,为了解决这个问题就引入了一种新的机制来处理在同一页框中如何分配小存储器区,这个机制可以减少申请和释放内存带来的消耗,这些小存储器区的内存称为Slab。meminfo文件中标识了Slab的大小,而SReclaimable是指可收回Slab的大小。
Buffers和Cached的区别:
buffers 是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached 是用来给文件做缓冲。
buffers 是用来存储目录里面有什么内容,权限等等。
而cached直接用来记忆我们打开的文件,比如先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。
而buffers随时都在增加,比如先后两次使用ls /dev后,就会发现第二次执行的速度会较第一次快。
这就是buffers/chached的区别。
实战
prometheus监控 内存使用率的监控指标
之前是
- expr: round((100-(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100),0.01)
record: memory:usage
labels:
desc: "内存消耗百分比"
unit: "%"
后来换成了
- expr: round((100-(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes+node_memory_SReclaimable_bytes)/node_memory_MemTotal_bytes*100),0.01)
record: memory:usage
labels:
desc: "内存消耗百分比"
unit: "%"
标签:node,bytes,内存,监控,memory,使用率,Buffers,buffers 来源: https://www.cnblogs.com/faberbeta/p/15433078.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。