Unterschied zwischen den Mount-Optionen 'Sync' und 'Async'

42

Was ist der Unterschied zwischen syncund asyncMount-Optionen aus Sicht des Endbenutzers? Funktioniert das mit einer dieser Optionen gemountete Dateisystem schneller als mit einer anderen? Welche Option ist die Standardeinstellung, wenn keine festgelegt ist?

man mountbesagt, dass diese syncOption die Lebensdauer des Flash-Speichers verkürzen kann, aber konventionelle Weisheiten überflüssig machen kann. Jedenfalls geht es mich etwas an, weil meine primäre Festplatte, auf der Partitionen /und /homeDateien abgelegt sind, eine SSD-Festplatte ist.

Ubuntu - Installer (14,04) haben nicht angegeben , syncnoch asyncOption für /Partition, sondern setzen asyncfür /homedie Option defaults. Hier ist meine /etc/fstab, ich habe einige zusätzliche Zeilen hinzugefügt (siehe Kommentar), aber nichts an den vom Installer erstellten Zeilen geändert:

# / 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

Wenn /dev/sdaes sich also um eine SSD handelt, sollte ich aus Gründen der Verschleißreduzierung eine asyncOption für /und /homeDateisysteme hinzufügen ? Soll ich zusätzliche Partitionen festlegen syncoder asyncaktivieren, die ich in meinem definiert habe /etc/fstab? Was ist der empfohlene Ansatz für SSD- und HDD-Laufwerke?


quelle
1
Überqueren Sie den Beitrag askubuntu.com/questions/502691/…
cuonglm
@ Gnouc Was ist los mit Crossposting? Wie auch immer, ich habe den Beitrag von Ask Ubuntu gelöscht, wie Sie es gewünscht haben.

Antworten:

49

asyncist das Gegenteil von sync, das selten verwendet wird. asyncStandardmäßig müssen Sie dies nicht explizit angeben.

Die Option syncbedeutet, dass alle Änderungen am entsprechenden Dateisystem sofort auf die Festplatte geschrieben werden. Auf die entsprechenden Schreibvorgänge wird gewartet. Bei mechanischen Laufwerken bedeutet dies eine erhebliche Verlangsamung, da das System die Plattenköpfe in die richtige Position bringen muss. mit syncdem userland Prozess muss warten, bis der Vorgang abgeschlossen ist. Im Gegensatz dazu asyncpuffert das System die Schreiboperation und optimiert die tatsächlichen Schreibvorgänge. In der Zwischenzeit wird der Prozess im Userland nicht blockiert, sondern weiter ausgeführt. (Wenn etwas schief geht, close()kehrt er -1mit zurück errno = EIO.)

SSD: Ich weiß nicht, wie schnell der SSD-Speicher im Vergleich zum RAM-Speicher ist, aber er ist sicherlich nicht schneller. Daher syncist es wahrscheinlich, dass dies zu Leistungseinbußen führt, auch wenn dies nicht so schlimm ist wie bei mechanischen Festplatten. Zu Lebzeiten ist die Weisheit immer noch gültig, da das Schreiben auf eine SSD viel "abnutzt". Das schlimmste Szenario wäre ein Prozess, der viele Änderungen an derselben Stelle vornimmt. bei syncjedem von ihnen wird die SSD getroffen, während bei async(der Standardeinstellung) die SSD die meisten von ihnen aufgrund der Kernel-Pufferung nicht sieht.

Am Ende des Tages, kümmere dich nicht darum sync, es ist sehr wahrscheinlich, dass es dir gut geht async.

Gegenmodus
quelle
in dem Fall, dass eine lokale Anwendung löscht und auf das bereitgestellte Laufwerk schreibt (auf eine externe Windows-Box zeigt); Besteht die Möglichkeit, dass der standardmäßige asynchrone Modus unsicher ist? Das Szenario ist eine Polling-App, die in einem Ordner auf dem Mount sucht, die Unterordner verarbeitet und dann löscht.
HellishHeat
@HellishHeat Sie sollten dies als separate Frage mit ausreichenden Details zu dem Szenario, an das Sie denken, stellen.
Gegenmodus
Wie hoch ist die Geschwindigkeit verschiedener Speicherschichten: RAM ist Nanosekunden, Flash ist Mikrosekunden (10 Sekunden für Schreibvorgänge, etwa 100 Sekunden für Lesevorgänge), Rotationsdisk ist Millisekunden (5 ms im besten Fall 10 bis 100 ms, wenn die Disk Queue gesichert ist und die Zugriffe ausgeführt werden sind zufällig). Schreibvorgänge an einer einzelnen Stelle auf einem Flash-Gerät werden möglicherweise auf einen kondensatorgestützten SRAM und nicht vollständig auf NAND geschrieben. Daher ist es schwierig, den Verschleiß oder die Geschwindigkeitsbelastung zu bestimmen.
Brian Bulkowski
Bedeutet dies , dass man braucht nicht zu Anruf syncoder fsyncoder fdatasyncsyscalls auf einem Sync - fs montiert?
CMCDragonkai
1
@ini Mit können Sie einen Datenverlust riskieren async. Wenn es sich jedoch um ein Problem handelt, syncist dies nicht die Antwort - die Leistungsstrafe von syncist einfach untragbar.
Gegenmodus
5

Vorsichtshinweis: Die Verwendung der Mount-Option 'async' ist möglicherweise nicht die beste Idee, wenn Sie ein Mount haben, auf das ständig geschrieben wird (z. B. wertvolle Protokolle, Überwachungskamera-Aufzeichnungen usw.) und Sie nicht vor plötzlichen Stromausfällen geschützt sind . Dies kann zu fehlenden Datensätzen oder unvollständigen (unbrauchbaren) Daten führen. Nicht so schickes Beispiel: Stellen Sie sich einen Dieb vor, der in ein Geschäft kommt und sofort das Stromkabel der Kamera abschneidet. Die Videoaufzeichnung des Einbruchs wurde aufgezeichnet, wurde jedoch möglicherweise nicht auf die Festplatte gespült / synchronisiert, da sie (oder Teile davon) stattdessen im Speicher zwischengespeichert wurden und somit verloren gingen, wenn die Kamera die Stromversorgung verlor.

Andreas Mikael Bank
quelle
Moderne Server verfügen über batteriegepufferte Festplatten-Caches in RAID-Controllern, die auch bei einem Stromausfall einen Datenverlust verhindern.
Tonioc
async schreibt nicht viele sekunden? Wie viele Sekunden ungefähr?
Ini
@Ini scheint, dass es von dem Dateisystem abhängt, das ich glaube, benutzt wird.
bd1251252
Das Betriebssystem sollte sowieso sicherstellen, dass beim Herunterfahren alles auf die ssd / hdd geschrieben wird. Bei einem Stromausfall können Daten verloren gehen. Ist das, was ich sage, richtig?
Ini
Der akkubasierte Cache auf einigen Festplatten ist kein Grund, den Stromausfall nicht zu optimieren. 1) Dies ist nur bei teuren professionellen Servern der Fall. Nicht alle Benutzer haben dies. 2) Es wird Sie nur in der Situation retten, in der die Daten überhaupt den Plattencontroller erreicht haben. In vielen Fällen bleibt es im Cache des Betriebssystems stecken, lange bevor der Controller diese Daten sehen kann - und dies geht bei einem Stromausfall verloren.
Cray