Jaka jest różnica między opcjami montażu sync
a async
montażem z punktu widzenia użytkownika końcowego? Czy system plików podłączony z jedną z tych opcji działa szybciej niż w przypadku podłączenia z inną? Która opcja jest domyślna, jeśli żadna z nich nie jest ustawiona?
man mount
mówi, że ta sync
opcja może skrócić żywotność pamięci flash, ale może to być spowodowane przestarzałą konwencjonalną mądrością. W każdym razie dotyczy to mnie trochę, bo moim głównym dysku twardym, gdzie partycje /
i /home
są umieszczone, jest napęd SSD.
Instalator Ubuntu (14.04) nie określono sync
ani async
rozwiązaniem dla /
partycji, ale ustawiony async
na /home
opcją defaults
. Oto moje /etc/fstab
, dodałem kilka dodatkowych wierszy (patrz komentarz), ale nic nie zmieniłem w wierszach wykonanych przez instalatora:
# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4 defaults 0 2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none swap sw 0 0
# here goes part written by me:
# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults 0 2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9 /mnt/win_c ntfs auto,umask=0222,ro 0 0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2 /mnt/win_d ntfs auto,umask=0222,ro 0 0
Więc jeśli mój /dev/sda
jest SSD, powinien - w trosce o zmniejszenie zużycia - dodaj async
opcję /
i /home
systemy plików? Czy powinienem ustawić sync
lub async
wybrać opcję dla dodatkowych partycji, które zdefiniowałem w moim /etc/fstab
? Jakie jest zalecane podejście do dysków SSD i HDD?
Odpowiedzi:
async
jest przeciwieństwemsync
, które jest rzadko używane.async
jest ustawieniem domyślnym, nie musisz tego jawnie określać.Ta opcja
sync
oznacza, że wszystkie zmiany w odpowiednim systemie plików są natychmiast usuwane na dysk; oczekiwane są odpowiednie operacje zapisu. W przypadku napędów mechanicznych oznacza to ogromne spowolnienie, ponieważ system musi przesunąć głowice dysków we właściwe położenie; zsync
procesem użytkownika musi czekać na zakończenie operacji. W przeciwieństwieasync
do buforów systemowych operacja zapisu i optymalizacja rzeczywistych zapisów; tymczasem zamiast blokowania proces w przestrzeni użytkownika nadal działa. (Jeśli coś pójdzie nie tak,close()
wróci-1
zerrno = EIO
.)SSD: Nie wiem, jak szybko pamięć SSD jest porównywana z pamięcią RAM, ale z pewnością nie jest szybsza, więc
sync
prawdopodobnie spowoduje zmniejszenie wydajności, choć nie tak źle, jak w przypadku napędów mechanicznych. Przez całe życie mądrość jest nadal aktualna, ponieważ zapisywanie na dysk SSD bardzo ją „zużywa”. Najgorszym scenariuszem byłby proces, który wprowadza wiele zmian w tym samym miejscu; zsync
każdym z nich uderza SSD, podczas gdy przyasync
(domyślnym) SSD nie widzi większości z powodu buforowania jądra.Pod koniec dnia nie przejmuj się
sync
, najprawdopodobniej wszystko jest w porządkuasync
.źródło
sync
lubfsync
czyfdatasync
syscalli na synchronizację fs zamontowany?async
. Jeśli jednak jest to problem,sync
to nie jest odpowiedzią - kara za wydajnośćsync
jest po prostu wygórowana.Przestroga: użycie opcji montowania „asynchronicznie” może nie być najlepszym pomysłem, jeśli masz dostęp do montowania, który jest stale zapisywany (np. Cenne dzienniki, nagrania z kamer bezpieczeństwa itp.) I nie jesteś chroniony przed nagłymi przerwami w dostawie prądu . Może to spowodować brak rekordów lub niekompletne (bezużyteczne) dane. Niezbyt mądry przykład: wyobraź sobie złodzieja wchodzącego do sklepu i natychmiast odcinającego kabel zasilający aparatu. Nagrywanie wideo włamania zostało zarejestrowane, ale mogło nie zostać przepłukane / zsynchronizowane z dyskiem, ponieważ mogło ono zostać buforowane w pamięci (lub jego części), a zatem zostało utracone, gdy kamera straciła moc.
źródło