Różnica między opcjami montowania „synchronizacji” i „asynchronizacji”

42

Jaka jest różnica między opcjami montażu synca asyncmontaż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 mountmówi, że ta syncopcja 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 /homesą umieszczone, jest napęd SSD.

Instalator Ubuntu (14.04) nie określono syncani asyncrozwiązaniem dla /partycji, ale ustawiony asyncna /homeopcją 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/sdajest SSD, powinien - w trosce o zmniejszenie zużycia - dodaj asyncopcję /i /homesystemy plików? Czy powinienem ustawić synclub asyncwybrać opcję dla dodatkowych partycji, które zdefiniowałem w moim /etc/fstab? Jakie jest zalecane podejście do dysków SSD i HDD?


źródło
1
Nie przekraczaj postu askubuntu.com/questions/502691/…
cuonglm
@Gnouc Co jest nie tak z crossspostingiem? W każdym razie usunąłem post z Ask Ubuntu, tak jak prosiłeś.

Odpowiedzi:

49

asyncjest przeciwieństwem sync, które jest rzadko używane. asyncjest ustawieniem domyślnym, nie musisz tego jawnie określać.

Ta opcja syncoznacza, ż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; z syncprocesem użytkownika musi czekać na zakończenie operacji. W przeciwieństwie asyncdo 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 -1z errno = EIO.)

SSD: Nie wiem, jak szybko pamięć SSD jest porównywana z pamięcią RAM, ale z pewnością nie jest szybsza, więc syncprawdopodobnie 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; z synckażdym z nich uderza SSD, podczas gdy przy async(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ądku async.

przeciwdziałanie
źródło
w przypadku, gdy aplikacja lokalna usuwa i zapisuje na zamontowanym dysku (wskazując na zewnętrzne okno systemu Windows); czy istnieje możliwość, że domyślny tryb asynchroniczny jest niebezpieczny? Scenariusz to aplikacja do odpytywania, przeglądająca jeden folder na wierzchowcu, analizująca podfoldery, a następnie usuwająca je.
HellishHeat
@HellishHeat Powinieneś zadać to jako osobne pytanie z wystarczającymi szczegółami na temat scenariusza, który masz na myśli.
kontr-
Jaka jest prędkość różnych warstw pamięci: RAM to nanosekunda, flash to mikrosekundy (10 sekund dla zapisów, około 100 dla odczytów), dysk obrotowy to milisekundy (najlepszy przypadek 5 ms, 10 do 100 ms, jeśli kopia zapasowa kolejki dysku jest dostępna, a dostęp są losowe). Zapis w jednym miejscu na urządzeniu flash może zapisywać w pamięci SRAM z kondensatorem i nie być zapisywany do NAND. Dlatego trudno jest określić wpływ na zużycie lub prędkość.
Brian Bulkowski
Czy to oznacza, że nie trzeba do wywołania synclub fsyncczy fdatasyncsyscalli na synchronizację fs zamontowany?
CMCDragonkai
1
@ini Możesz ryzykować utratę danych async. Jeśli jednak jest to problem, syncto nie jest odpowiedzią - kara za wydajność syncjest po prostu wygórowana.
kontr
5

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.

Andreas Mikael Bank
źródło
Nowoczesne serwery mają buforowane dyski w kontrolerach RAID, które zapobiegną utracie danych nawet w przypadku utraty zasilania.
tonioc
async nie pisze przez wiele sekund? Ile w przybliżeniu sekund?
Ini
@Ini wydaje się, że to zależy od używanego systemu plików.
bd1251252,
System operacyjny i tak powinien upewnić się, że po zamknięciu wszystko zostanie zapisane na dysku SSD / HDD. W przypadku awarii zasilania możesz stracić część danych. Czy to, co mówię, jest prawidłowe?
Ini
Pamięć podręczna oparta na baterii w niektórych dyskach nie jest tak naprawdę powodem, dla którego nie należy optymalizować utraty zasilania 1), który występuje tylko w drogich profesjonalnych serwerach. Nie wszyscy użytkownicy będą mieli to 2), to tylko uratuje cię w sytuacji, gdy dane w ogóle dotarły do ​​kontrolera dysku. W wielu przypadkach utknie w pamięci podręcznej systemu operacyjnego na długo przed tym, zanim kontroler zobaczy te dane - i zostaną utracone w przypadku awarii zasilania.
Cray