Was ist der Unterschied zwischen sync
und async
Mount-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 mount
besagt, dass diese sync
Option 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 /home
Dateien abgelegt sind, eine SSD-Festplatte ist.
Ubuntu - Installer (14,04) haben nicht angegeben , sync
noch async
Option für /
Partition, sondern setzen async
für /home
die 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/sda
es sich also um eine SSD handelt, sollte ich aus Gründen der Verschleißreduzierung eine async
Option für /
und /home
Dateisysteme hinzufügen ? Soll ich zusätzliche Partitionen festlegen sync
oder async
aktivieren, die ich in meinem definiert habe /etc/fstab
? Was ist der empfohlene Ansatz für SSD- und HDD-Laufwerke?
Antworten:
async
ist das Gegenteil vonsync
, das selten verwendet wird.async
Standardmäßig müssen Sie dies nicht explizit angeben.Die Option
sync
bedeutet, 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. mitsync
dem userland Prozess muss warten, bis der Vorgang abgeschlossen ist. Im Gegensatz dazuasync
puffert 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-1
mit zurückerrno = EIO
.)SSD: Ich weiß nicht, wie schnell der SSD-Speicher im Vergleich zum RAM-Speicher ist, aber er ist sicherlich nicht schneller. Daher
sync
ist 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. beisync
jedem von ihnen wird die SSD getroffen, während beiasync
(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 gehtasync
.quelle
sync
oderfsync
oderfdatasync
syscalls auf einem Sync - fs montiert?async
. Wenn es sich jedoch um ein Problem handelt,sync
ist dies nicht die Antwort - die Leistungsstrafe vonsync
ist einfach untragbar.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.
quelle