Linux - PageCache
2021/5/7 7:25:25
本文主要是介绍Linux - PageCache,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
本文介绍的 PageCache(页高速缓冲存储器) 是 Linux 在读取文件数据中会把文件先拷贝到 内核缓冲区,其实是磁盘高速缓存。可以看看博文《零拷贝-并不是没有拷贝》,文中图文有描述这个过程。
出现原因和优点
CPU 读写磁盘相比读写内存的速度实在太慢了,所以如果把读磁盘变成多内存,那系统的处理数据就会提升很大。所以出现了 PageCache 机制。
程序运行的时候,具有「局部性」,所以通常刚被访问的数据在短时间内再次被访问的概率很高,于是可以用 PageCache 来缓存最近被访问的数据,当空间不足时淘汰最久未被访问的缓存。
再者在读取某一块数据时候,可以认为接下来很有可能会提取下一块的内容。PageCache 使用了「预读功能」。
所以 PageCache 主要有两个优点:
- 缓存最近被访问的数据。
- 预读。
当然也不是所有场合都适合使用 PageCache 机制,比如在读取大文件时候会出现以下的现象,导致 PageCache 成了累赘。
暂用过多的内存空间,真正需要被缓存的热点文件不能使用 PageCache。
读取文件时候往往会用到 DMA ,大文件下没有享受到缓存带来的好处,但却耗费 DMA 多拷贝到 PageCache 一次。
PageCache 结构
说到 PageCache 时候不得不提 BufferCache,因为它们俩一起构成了 Linux 的文件缓存。
Linux 的文件缓存分为部分,一个是 PageCache,另一个是 BufferCache;一个 PageCache 包含多个 BufferCache。
如下图:
总结
PageCache 具有缓存最近被访问的数据、预读等优点,能大幅提升系统的处理速度,但对于大文件先,往往是不使用 PageCache 技术的。
想知道 Linux 在处理大文件是怎么操作的,请看这篇博文 《Linux - 怎么实现大文件传输》。
这篇关于Linux - PageCache的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南
- 2024-07-29linux命令行下好用的性能监控工具atop
- 2024-07-04Linux系统上离线升级SSH服务的具体操作步骤-icode9专业技术文章分享
- 2024-06-0600-macOS和Linux安装和管理多个Python版本
- 2024-03-30[译]漫画SELinux概念