Linux中的buff/cache内存

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

buffer

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

cache

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

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

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

Linux这种机制的好处

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

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

猜你喜欢

转载自www.cnblogs.com/zuxing/p/11393451.html
今日推荐