BufferCache与PageCache
在内核2.6版本之前,两个Cache的区分是比较大的,但是在该版本之后,两个Cache的区别逐渐弱化:
Page Cache | Buffer Cache |
---|---|
对文件数据的缓存 | 对块设备数据的缓存 |
主要缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问 | 主要缓存文件的物理内容,即物理磁盘的磁盘块,从而加速对磁盘的访问; |
优化文件系统的I/O | 优化磁盘的I/O |
主要提高读效率 | 主要提高写效率 |
在内核版本2.6之后,虚拟内存子系统可以直接访问Buffer Cache,Buffer Cache里也可以直接存指向Page Cache的指针。
Buffer Cache和Page Cache的区别:
- Page cache是对文件数据的缓存,也称为memory的缓冲区;
- 主要用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问;
- Buffer cache是对块设备数据的缓存,也可称为disk的缓冲区;
- 主要缓存文件的物理内容,即物理磁盘的磁盘块,从而加速对磁盘的访问;
- Swap cache是交换分区在内存中的缓存;