当我执行 htop 时,我有以下统计数据:
我不明白,虽然它说我有 7450MB 内存,但图表却走向最后。这是为什么?
答案1
它已充满缓存。如果程序需要,仍然可以使用,但目前由内核分配。
以我的其中一台虚拟机为例:
“应用程序”只占一小部分,但其余大部分内存都由缓冲区和缓存填充。将尽可能多的磁盘数据放入内存有助于加快速度。
然而,Linux 内核的实现方式(基于访问时间的简单 FIFO 缓冲区)受到了批评,因为在对一个大文件进行 md5sum 之后,所有缓存的数据都会消失。
您可以通过执行以下操作手动删除所有缓存:
sync; echo 3 > /proc/sys/vm/drop_caches
然后你的 htop 或free -m
输出会显示大量的“可用”内存。