如何刷新nfs属性caching?

我需要find一种方法来刷新客户端的NFS属性cachingstat()调用从属性caching中读取ctime而不是实际值,最多需要3秒才能将实际值反映到caching中。 在安装时使用“noac”选项,但会长期影响性能。

我碰到的解决scheme就像在同一个文件的所有者等做一个chown,但有一个正确的方法来刷新属性caching之前做一个stat()? 这个问题只发生在Redhat Linux上,而不是FreeBSD。 谁能解释一下?

Solutions Collecting From Web of "如何刷新nfs属性caching?"

这不是特定于NFS的,但可以让内核删除缓存。 这通常在IO基准测试中完成,但也适用于NFS。

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. To free pagecache: echo 1 > /proc/sys/vm/drop_caches To free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches To free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches As this is a non-destructive operation and dirty objects are not freeable, the user should run `sync' first.