我有一个 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
为什么屏幕截图中的 7505 免费内存使用量为 7600mb 的 6000
但是当我将 htop 中唯一进程的所有百分比加起来时,我只得到大约 22-25% ?不应该高很多吗?
答案1
这是因为htop
将缓冲区和缓存内存计为空闲内存,因为实际上可以这样看。
在内存中保存一些缓存数据没有“成本”,因此内核将数据保留在那里,以备以后需要。
例如,假设您观看了大约 500mb 的视频,关闭视频后,内核可能会决定将其保留在内存中,而不是清理该部分,以防万一您再次需要该视频,这样就不需要加载从您的慢速硬盘再次读取。但这 500mb 可以被认为是免费的,因为一旦你需要内存做其他事情,内核就可以立即使用该内存。
当该内存被正在运行的程序使用时,情况并非如此,因为该程序现在正在使用该内存。
used
如果从内存中减去buffers
和cached
值,您将得到 所显示的值htop
。
那么你说的那个百分比,就看你怎么总结了。