2012-12-19 12 views
5

Potrzebuję znaleźć sposób na opróżnienie pamięci podręcznej atrybutów NFS po stronie klienta. Wywołanie stat() odczytuje ctime z pamięci podręcznej atrybutów, a nie rzeczywistą wartość, trwa do 3 sekund, aby wartość rzeczywista została odzwierciedlona w pamięci podręcznej. używanie opcji "noac" podczas montażu działa, ale wpływa na wydajność w dłuższej perspektywie.Jak opróżnić pamięć podręczną atrybutów nfs?

Natknąłem się na takie rozwiązania jak robienie tego samego właściciela tego pliku itp., Ale czy istnieje właściwa metoda opróżniania bufora atrybutów przed wykonaniem stat()? a ten problem występuje tylko w systemie Redhat Linux, a nie w FreeBSD. Czy ktoś może wyjaśnić?

+0

Która wersja RedHat używasz? Może to błąd i lepiej go zgłosić. Możesz wypełnić błąd na [Redhat's bugzilla] (https://bugzilla.redhat.com/) –

Odpowiedz

2

Nie dotyczy to systemu plików NFS, ale można mieć pamięć podręczną upuszczania jądra. Zwykle robi się to podczas testów porównawczych IO, ale działa również dla 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. 
Powiązane problemy