操作系统磁盘缓存

磁盘缓存

为了减少CPU读取IO设备的次数,从而提高系统性能,系统会在物理内存中为磁盘分配一块地方用来做磁盘缓存。磁盘数据会通过磁盘缓存进行读写。

当我们在读一个文件的时候,操作系统会检查磁盘缓存中是否存在,存在直接返回,不存在再去执行真正的IO操作;

当在写文件时,也不是直接写磁盘文件。而是写入缓存中,这时写过的缓存会被标记为脏页,操作系统会定期地将文件回写到磁盘中。

Linux中可以通过free查看磁盘缓存的大小。

free -w -h 
              总计         已用        空闲      共享       Buffers         Cache    可用
内存:        15Gi       7.8Gi       2.0Gi       729Mi       1.4Gi       4.3Gi       6.6Gi

之前的buffer cache和PageCache是分开的,目前的Linux内核两者是融合的。

很多地方都在强调Buffer Cache和PageCache的区别,我觉得实际意义不大,只是一种逻辑概念区别而已。

参考资料:

磁盘缓存-从一次文件丢失说起

Linux内核Page Cache和Buffer Cache关系及演化历史

Linux Page Cache的理解

--------EOF---------
微信分享/微信扫码阅读