Page Cache和Buffer Cache的区别
在监控中开始对着两个Cache有点搞不清楚,后来查了下,弄清楚了它们的区别,都是Cache但完全不是缓存一种东西,很好区分。磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。 假设我们通过文件系统操作文件,那么文件将被缓存到Page Cache,如果需要刷新文件的时候,Page Cache将交给Buffer Cache去完成,因为Buffer Cac
在监控中开始对着两个Cache有点搞不清楚,后来查了下,弄清楚了它们的区别,都是Cache但完全不是缓存一种东西,很好区分。磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。 假设我们通过文件系统操作文件,那么文件将被缓存到Page Cache,如果需要刷新文件的时候,Page Cache将交给Buffer Cache去完成,因为Buffer Cac
经过研究了下Linux相关代码,把对Linux Cache实现的方式做一些总结。相关源码主要在:./fs/fscache/cache.c Cache实现的代码./mm/slab.c SLAB管理器代码./mm/swap.c 缓存替换算法代码./mm/mmap.c 内存管理器代码./mm/mempool.