给定一个 4KB 的块大小,当从磁盘读取一个 1KB 的文件并缓存在主存中时,是否缓存了包含该文件的整个 4KB 块?
同样,如果打开一个 100KB 的文件,在其中寻找 50KB,然后读取 1KB 的数据,那么主存中缓存的只是包含读取的 1KB 数据的 4KB 块而不是整个文件吗?
我假设 ext4 文件系统,但没有坚持下去。
给定一个 4KB 的块大小,当从磁盘读取一个 1KB 的文件并缓存在主存中时,是否缓存了包含该文件的整个 4KB 块?
同样,如果打开一个 100KB 的文件,在其中寻找 50KB,然后读取 1KB 的数据,那么主存中缓存的只是包含读取的 1KB 数据的 4KB 块而不是整个文件吗?
我假设 ext4 文件系统,但没有坚持下去。
是的。
权威的Linux Page Cache Basics声明
和
这适用于基于块的文件系统,即 ccfs、ext?、gfs、ifs、xfs,如图所示。Page Cache, the Affair Between Memory and Files也证实了这一点,它明确指出:
该网页的第三段仅确认包含缓存在主内存中的 1KB 数据读取的 4KB 块,而不是整个文件。