如何保持Linux页面缓存最小化?

如何保持Linux页面缓存最小化?

我想设置 Debian 系统,其中 ZFS 作为主文件系统,一些作为辅助文件系统(ntfs、ext2/4)。当我从非 ZFS 文件系统读取/写入时,页面缓存将增长并迫使 zfs arc 缩小。我不想要这种行为。如何保持Linux页面缓存最小化? /proc/sys/vm/dirty_* 仅用于控制脏缓存。 /proc/sys/vm/vfs_cache_Pressure 用于某些内容(我不记得正确的名称),但不用于页面缓存。

答案1

您确定当您访问/读/写非 ZFS 文件系统中的文件时 ARC 会收缩吗?我认为这不一定是真的..

页面缓存使用空闲内存来缓存您访问的文件,ZFS ARC 内存不是空闲的,它由 ARC 声明,并且 ARC 回收主要由 ZFS 管理。

如果您正在编写访问文件的程序,您可以使用 POSIX_FADV_DONTNEED 查看 fadvise

如果你不让页面缓存做它应该做的事情,你可能会看到由于缓存命中率低而导致 IO 增加。如果您没有执行足够的非 ZFS I/O 来实现这一点,那么它使用的内存量应该无关紧要。

您还可以在需要时使用 /proc/sys/vm/drop_caches 删除页面缓存

相关内容