【发布时间】:2011-09-01 02:23:08
【问题描述】:
我想知道 Linux 内核中的缓冲区缓存是否存在于文件系统中,例如 DVD 和 FUSE 的 UDF?
我试图搜索这个,但不幸的是找到的信息很少。
谢谢。
【问题讨论】:
标签: linux caching filesystems linux-kernel vfs
我想知道 Linux 内核中的缓冲区缓存是否存在于文件系统中,例如 DVD 和 FUSE 的 UDF?
我试图搜索这个,但不幸的是找到的信息很少。
谢谢。
【问题讨论】:
标签: linux caching filesystems linux-kernel vfs
缓冲区缓存将用于对针对块设备打开的文件句柄的任何访问,除非文件句柄是用O_DIRECT 打开的。这包括代表 FUSE 文件系统的访问。请注意,如果 FUSE 也进行缓存(我不知道),这可能会导致数据的双重缓存;与普通的内核文件系统不同,使用 FUSE,内核不能安全地重叠页面和缓冲区缓存。在这种情况下,可能值得考虑在 FUSE 文件系统守护进程中使用 O_DIRECT 以减少缓存压力(但请务必先进行分析!)。
对于 UDF 等内核内文件系统,缓冲区缓存将用于所有 IO。对于包含文件数据的块,该块将同时位于缓冲区和页面缓存中(使用相同的底层内存)。这将在内存使用统计中计为页面缓存,而不是缓冲区缓存。
【讨论】: