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

夜莺监控Nightingale中内存使用率+可用率不等于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之谜

更新时间 2024-09-23

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云