Linux中的buff/cache内存

Posted zuxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中的buff/cache内存相关的知识,希望对你有一定的参考价值。

我们用free、top等相关能够查询到当前内存的使用情况的命令时,总会有一个buff/cache让我们很困惑。

buffer

即写如磁盘时,先保存到磁盘缓冲区(buffer),然后再写入到磁盘。

cache

即读磁盘时,数据从磁盘读出后,暂留在缓冲区(cache),为后续程序的使用做准备。

如何划分buffer/cache(已使用 or 空闲)

  1. 操作系统的角度:这块内存确实被操作系统使用了
  2. 用户角度:如果用户要使用,这块内存是可以很快被回收而被用户空间程序使用,因此从用户角度而言这块内存应被划为空闲状态

Linux这种机制的好处

这是Linux一种非常优秀的设计,目的就是为了提升磁盘IO的性能,从低速的块设备上读取的数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,绕开了低速的块设备,从而提高系统的整体性能。

为了提高系统性能和不浪费内存,linux把多的内存做了cache,以提高io速度.你的那些内存并没有被占用。

 

以上是关于Linux中的buff/cache内存的主要内容,如果未能解决你的问题,请参考以下文章

已解决Linux中buff/cache(磁盘写/读缓存)占用大量内存导致用户进程内存不足

Linux [buff/cache]内存缓存占用过高分析和优化

已解决Linux中buff/cache(磁盘写/读缓存)占用大量内存导致用户进程内存不足

已解决Linux中buff/cache(磁盘写/读缓存)占用大量内存导致用户进程内存不足

linux buff/cache

buff/cache设置上线