夜莺前端展示的内存使用率和 (1-mem_available_percent)不一致, 前端内存指标逻辑文档无法打开,无法查看指标计算逻辑

Viewed 33

夜莺版本:
前端版本:v6.7.1
后端版本:v6.7.2-ab38f220f77fc6780d09466848d318776a24e35c
操作系统版本: Centos7

1 Answers

根据源码可以看到used_percent = 100*Used/Total 而 available_percent = 100*Available/Total

Used = Total - Free - Buffers - Cached

Available 两种情况,没有(MemAvailable is in /proc/meminfo (kernel 3.14+))自行计算,有取MemAvailable值

mem
mem_linux
[转载]/PROC/MEMINFO之谜

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

那表达式 mem_available_percent 是怎么计算的呢,是 buffer+slab+free+use ,还是说直接取的内核算好的/proc/meminfo中的MemAvailable这个值

或者换个说法,仪表盘上面展示的是used_percent还是available_percent

可以点图表左上角排查,或者编辑看一下