如何从/proc/meminfo(如htop)计算系统内存使用情况

6 浏览
0 Comments

如何从/proc/meminfo(如htop)计算系统内存使用情况

运行htop命令可以给你展示内存使用情况的图片,格式如下:

1.92G/5.83G

问题:我该如何解释从/proc/meminfo中获取的值,以便可以编程计算内存使用情况?

我正在寻找类似于这个问题:Linux中给出的CPU使用率的准确计算方法?,意味着伪代码可以,我不需要能编译的东西,只需要逻辑。htop的源代码是查找的地方,但我没有运气找到编写此代码的行...

$ cat /proc/meminfo 
MemTotal:        6110716 kB
MemFree:         2076448 kB
MemAvailable:    3800944 kB
Buffers:          382240 kB
Cached:          1496216 kB
SwapCached:            0 kB
Active:          2830192 kB
Inactive:         796648 kB
Active(anon):    1749940 kB
Inactive(anon):   109808 kB
Active(file):    1080252 kB
Inactive(file):   686840 kB
Unevictable:          48 kB
.
.
.
...

admin 更改状态以发布 2023年5月22日
0
0 Comments

htop的作者在这里。这些是我用来获取内存仪表中绿色、蓝色和黄色条形的数字的计算:

  • 总使用内存 = MemTotal - MemFree
  • 非缓存/缓冲内存 (绿色) = 总使用内存 - (Buffers + Cached memory)
  • 缓冲 (蓝色) = Buffers
  • 缓存内存 (黄色) = Cached + SReclaimable - Shmem
  • 交换 = SwapTotal - SwapFree

在htop的源代码中: linux/LinuxProcessList.clinux/Platform.c

htop截图

0