2011-05-24 67 views

回答

4

缓冲区缓存将用于访问针对块设备打开的文件句柄,除非该文件句柄以O_DIRECT打开。这包括代表FUSE文件系统的访问。请注意,如果FUSE也进行缓存(我不知道如何),这可能会导致数据的双缓存;不像正常的内核文件系统,使用FUSE时,内核不能安全地重叠页面和缓冲区缓存。在这种情况下,考虑在FUSE文件系统守护进程中使用O_DIRECT以降低缓存压力可能是值得的(但请务必首先进行配置!)。

对于内核文件系统(如UDF),缓冲区高速缓存将用于所有IO。对于包含文件数据的块,该块将同时位于缓冲区和页面缓存中(使用相同的底层内存)。这将在内存使用情况统计中作为页面缓存而非缓冲区缓存进行计算。