Jestem na serwerze SUSE Enterprise, który zamontował dysk za pośrednictwem montażu NFS. Utworzyłem plik 34 GB, dd if=/dev/Zero of=test_file bs=8k Count=4194304
aby przetestować szybkość zapisu udziału NFS. Następnie usunąłem plik za pomocą, rm test_file
a następnie natychmiast go wykorzystałem df
.
Wartość w used
kolumnie wyniku df
zaczyna się zmniejszać. Aktualizuję, dzwoniąc df
co ~ 10 sekund i za każdym razem, gdy widzę, że used
wartość spadła o ~ 2 GB.
Wygląda więc na to, że rm test_file
polecenie nie wydaje się, że zakończyło swoją pracę, chociaż mam ponownie wiersz polecenia (więc rm musiał zwrócić „0”, prawda?). Co tu się dzieje w tle?
sync
?Odpowiedzi:
System plików w węźle zdalnym, który zapewnia pamięć zaplecza dla udziału NFS, nie zwalnia natychmiast miejsca.
Ściśle mówiąc, semantyka POSIX nie wymagają usuwania pliku natychmiast uwolnić przestrzeń została użyciu (faktycznie nie wymagają go uwolnić żadnego miejsca na wszystko , co jest raczej ważne dla niektórych przypadków użycia). Z tego powodu oraz z faktu, że zwolnienie miejsca może zająć dużo czasu, niektóre systemy plików nie czekają na dezalokację i po prostu wracają, gdy upewnią się, że pozycja pliku nie pojawi się na listach katalogów ( to wszystko, czego wymaga POSIX).
Możliwe przyczyny zwolnienia miejsca to:
źródło