为什么要缓存这么多的 RAM?

为什么要缓存这么多的 RAM?
# free -m

             total       used       free     shared    buffers     cached
Mem:         32086      30156       1930         51        564      26606
-/+ buffers/cache:       2985      29101
Swap:        31997         12      31985

在我的 32 GB 内存中,为什么有 26 GB 被缓存了?缓存意味着什么?这是否意味着我无法使用它们并且很快就会耗尽内存?或者这实际上是一件好事?

答案1

是的,这是件好事。在你的 32 GB 内存中,26 GB 被“缓存”,因为你的程序不需要,因此操作系统通过在其中存储最近访问的文件来充分利用它。

如果程序请求更多内存,操作系统只会为其回收部分缓存。


不过有一个例外。存储在“tmpfs”文件系统中的文件/tmp实际上存储在页面缓存中,因此它们也算作“缓存”内存使用量,但当然不能自动回收,除非您自己删除它们。

因此您应该检查一下df -Tht tmpfs,确保其中没有任何大文件。

相关内容