Ubuntu 16 - 免费命令缓冲区/缓存区别

Ubuntu 16 - 免费命令缓冲区/缓存区别

我认为缓冲区和缓存内存之间存在差异。在 ubuntu 中,我看到它们被混为一谈。ubuntu 对缓冲区和缓存的处理方式是否不同?

在我的例子中,可用内存非常低,我正在尝试调查是什么消耗了这么多内存。因此我打算区分缓冲区和缓存

free -h
              total        used        free      shared  buff/cache   available
Mem:            60G         35G        200K        9.8G         24G        200K
Swap:            0B          0B          0B

答案1

未使用的内存是浪费的内存;因此 Ubuntu(通常是 Linux)会尝试以最佳方式使用它。

据我所知,无论何时打开一个程序,关闭它之后,大量与其进程相关的数据仍然存在于内存中以防您再次运行它,因此 Linux 不必将所有数据再次加载到内存中,因为它已经在那里了。

只要您拥有大量数据,Buff/Cache您就可以安全地进行,因为实际上如果需要的话,那部分数据会被立即释放。

您可以vmstat -S M分别查看缓冲区和缓存。首先查看哪一个具有更高的值,然后更容易猜测发生了什么。

以下引文均来自这里

“缓冲区”表示 RAM 中有多少部分专门用于缓存磁盘块。
“缓存”与“缓冲区”类似,只是这次它缓存了文件读取的页面。

引自这里更清楚的引述如下:

缓冲区与特定块设备相关联,并涵盖文件系统元数据的缓存以及跟踪正在传输的页面。缓存仅包含停放的文件数据。

缓冲区会记住目录中的内容、文件权限,并跟踪特定块设备的内存写入或读取情况。缓存仅包含文件本身的内容。

阅读更多

就您而言,我猜测这很大一部分24G与有关cache,这可能是由您系统上运行的特定服务引起的。

相关内容