如何解释 top/htop 内存使用情况

Ric*_*der 8 memory top htop

我有一个 htpc/server-ish ubuntu 盒子在家里运行 kodi (xbmc) 和其他一些网络服务。

我注意到 kodi 很迟钝,然后 ssh 进入盒子看看发生了什么。我看到了这个 htop 输出:

在此处输入图片说明

这是 free -m 的输出

richard@RMD-HTPC:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7642       7505        137        152        196       1296
-/+ buffers/cache:       6012       1630
Swap:         1905         10       1895
Run Code Online (Sandbox Code Playgroud)

为什么 7505 的免费截图中的 ram 使用量为 7600mb 中的 6000

但是,当我将 htop 中独特进程的所有百分比加起来时,我只会达到 22-25% 左右?不应该高很多吗?

Kir*_*ira 14

这是因为htop将缓冲区和缓存内存计算为空闲内存,因为它实际上可以通过这种方式看到。

在内存中保存一些缓存数据没有“成本”,因此内核将内容保留在那里,以备以后需要时使用。

例如,假设您观看了大约 500 mb 的视频,在您关闭视频后,内核可能会决定将其保留在内存中而不是清理该部分,以防万一您再次需要该视频以便它不需要加载它再次从你的慢硬盘。但是那 500mb 可以被认为是免费的,因为一旦您需要内存用于其他用途,内核将能够立即使用该内存。

当正在运行的程序正在使用该内存时,情况并非如此,因为该程序现在正在使用该内存。

如果从used内存中减去bufferscached值,您将得到 显示的值htop

现在关于你说的那个百分比,这取决于你如何总结。