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?


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.