htop 和 /proc/meminfo 中的值之间存在差异

问题描述 投票:0回答:1

来自htops作者的回答 如何从 /proc/meminfo 计算系统内存使用情况(如 htop)

我知道htop中的总内存是根据/proc/meminfo计算的。我想我也可以在代码中交叉检查它并检查出来。 然而与htop中的内存条相比。我发现 /proc/meminfo 中显示的内存值存在重大差异。

在我的/proc/meminfo中读取内存消耗

MemTotal:       4144807288 kB
MemFree:        3513532764 kB
MemAvailable:   3936769368 kB
Buffers:         1119392 kB

因此,我认为内存条代表的总已用内存应该是 MemTotal-MemFree(以 GB 为单位),据我所知,应该是 (4144807288-3513532764)/1024^2=602Gb。 然而对我来说这个值显示几乎 180Gb。谁能解释一下 /proc/meminfo 中的值和 htop 中的值如何变得不同。

linux memory proc htop
1个回答
1
投票

首先让我说天啊,这真是一个疯狂的内存量。

无论如何,这里有一些不明白的地方:

“内存空闲”是完全未使用的内存。

“可用内存”是“空闲内存”加上如果内核删除其文件系统缓存,可以立即释放的内存。一般来说,可用内存是你应该查看/关心的统计数据。

在我们的计算中使用“可用内存”统计数据,让我们计算一下:

numfmt --to=iec $(((4144807288-3936769368)*1024))
> 199G

更接近 180G

htop
显示为“已使用”RAM 的数量。

也尝试运行

free -h
并查看“可用”列。

© www.soinside.com 2019 - 2024. All rights reserved.