2012-12-19 6 views
5

クライアント側でNFS属性キャッシュをフラッシュする方法を見つける必要があります。 stat()呼び出しは実際の値ではなく属性キャッシュからctimeを読み込み、実際の値がキャッシュに反映されるまで最大3秒かかります。マウント時には 'noac'オプションを使用しますが、長期的にはパフォーマンスに影響します。nfs属性キャッシュをフラッシュする方法は?

私はファイルの同じ所有者でchownをやっているようなソリューションを見つけましたが、stat()を実行する前に属性キャッシュをフラッシュする適切な方法がありますか?この問題はFreeBSDではなくRedhat Linuxでのみ発生します。誰でも説明できますか?

+0

使用しているRedHatのバージョン?たぶんそれはバグであり、あなたはそれを報告する方がよいでしょう。 [redhatのbugzilla](https://bugzilla.redhat.com/)のバグを埋めることができます。 –

答えて

2

これは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. 
関連する問題