NFS 读取缓存在 Debian 上如何工作?

NFS 读取缓存在 Debian 上如何工作?

我计划使用 NFS 来提供许多小文件。它们将被频繁读取,因此客户端缓存至关重要。NFS 能处理这个问题吗?有没有办法以某种方式增加客户端缓存?

...或者我应该寻找其他解决方案?定期使用 rsync 或 unison 进行同步不是一个选项,因为文件会不时在客户端进行修改。

答案1

首先,NFS 不提供缓存一致性,因此如果您需要该功能,则必须寻找其他地方。

NFS 指定的是较弱的模型,称为“关闭至打开”一致性。这意味着当文件关闭时,任何脏数据都会刷新到服务器。相反,当文件打开时,会执行属性检查,这意味着如果客户端缓存了该文件的页面,它会检查这些页面是否仍然有效。

虽然规范本身没有规定,但大多数 NFS 客户端都具有属性缓存超时功能,即在客户端联系服务器重新验证目录或打开的文件的属性之前,它们的属性可以保留多久。在 Linux 上,请参阅 actimeo= 等挂载选项。值越高,缓存越积极,但如果其他客户端在此期间更新了文件,则使用过时数据的风险就越大。

相关内容