夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
第3章:Prometheus告警处理
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
第9章:Prometheus Operator
参考资料

内存使用率+可用率不等于100

Q:linux大盘显示的内存使用率(mem_used_percent)+内存可用率(mem_available_percent)为什么不是100%

A:

两个指标的计算公式如下:

  • used_percent = 100 * Used / Total
  • available_percent = 100 * Available / Total

再拆解分子:

  • Used = Total - Free - Buffers - Cached
  • Available 两种情况,取值MemAvailable(MemAvailable is in /proc/meminfo (kernel 3.14+)),另一种是没有获取到 MemAvailable 需要手动计算

MemFree不能代表全部可用的内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存,即MemAvailable。/proc/meminfo中的MemAvailable是内核使用特定的算法估算出来的,要注意这是一个估计值,并不精确 ——[转载]/PROC/MEMINFO之谜

开源版
Flashcat
Flashduty