# 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
,确保其中没有任何大文件。