Wie kann ich überprüfen, ob mein Linux-System so konfiguriert ist, dass Änderungen sofort mit der Festplatte synchronisiert werden?

Wie kann ich überprüfen, ob mein Linux-System so konfiguriert ist, dass Änderungen sofort mit der Festplatte synchronisiert werden?

Mir ist aufgefallen, dass eine Indizierungs-Engine auf meinem System,erinnernverbraucht viel Speicherplatz, wenn es funktioniert, und jedes Mal, wenn ich eine Einstellung eines Firefox-Add-ons änderte, war Festplattenaktivität zu verzeichnen. Ich weiß nicht, ob diese Anwendungen so konzipiert sind, dass Änderungen sofort mit der Festplatte synchronisiert werden, oder ob dies an einer Einstellung in der Systemkonfiguration liegt.

Gibt es eine Möglichkeit, das herauszufinden?

PS. Ich habe eine Frage hinterlassen aufSoftware-Empfehlungenzum Thema Recoll/Xapian.

Antwort1

Überprüfen Sie, ob das Dateisystem in der Ausgabe von erscheint grep -w sync /proc/mounts. Spoiler: Die Antwort ist nein. Das Mounten eines Dateisystems mit sofortiger Synchronisierung ist extrem langsam. (Außerdem verursacht es viele kleine Schreibvorgänge, was die Lebensdauer von Flash-Geräten verkürzen würde.)

Einige Anwendungen schreiben die Daten auf die Festplatte, indem siefdatasync. Die Unix-APIs sind leider nicht gut konzipiert, was die Belastbarkeit betrifft¹. Aus Anwendungssicht müssen einige Änderungen belastbar sein, da die Anwendung Daten an einen Remote-Computer übertragen hat, die anzeigen, dass die Änderung gespeichert wurde. In diesem Fall fdatasyncist dies die richtige Schnittstelle. Viele Anwendungen benötigen jedoch etwas anderes, nämlich die Garantie, dass, wenn sie Änderung 1 gefolgt von Änderung 2 vornehmen und das System mittendrin abstürzt, es nach dem Neustart keine Änderung 2 ohne Änderung 1 gibt. (Beispiel: Änderung 1 = Schreiben einer neuen Version einer Datei, Änderung 2 = Löschen der alten Version.) Dateisysteme ordnen Dateisystem-Schreibvorgänge aus Leistungsgründen neu an; normalerweise ist dies für Anwendungen unsichtbar, da es nur darum geht, was zwischen dem Dateisystem-Cache/-Puffer und der Festplatte geschieht, nicht um etwas, das für Anwendungen sichtbar ist. Aber im Falle eines Systemabsturzes spiegelt der Festplatteninhalt die Reihenfolge der tatsächlichen Festplatten-Schreibvorgänge wider. Es gibt keine API, die besagt „diese Änderung muss vor jener Änderung erfolgen“, daher wird dies fdatasyncals Notlösung für arme Leute verwendet (Änderung 1 durchführen, aufrufen, fdatasyncum sicherzustellen, dass sie auf die Festplatte übertragen wurde, dann Änderung 2 durchführen). Dies kann sich negativ auf die Leistung auswirken, insbesondere bei Medien mit langsamen Schreibvorgängen wie Flash.

Wenn eine Anwendung auf Ihrem System aufgrund übermäßiger Nutzung von fdatasyncoder seines Cousins ​​übermäßig langsam ist fsync, können SieAbonnierenum die fsync/ fdatasync-Aufrufe ungültig zu machen. Aber seien Sie sich bewusst, dass Sie möglicherweise mit inkonsistenten Daten zurückbleiben, wenn Ihr System mittendrin abstürzt.

Ich bin mir nicht sicher, ob meine Antwort relevant ist, um sich zu erinnern oder die Einstellungen eines Firefox-Add-Ons zu ändern. Diese Operation kann durchausLektürevon der Festplatte. Besonders recoll – seine Aufgabe besteht darin, große Datenmengen zu lesen!

Auch wenn Änderungen nicht sofort auf die Festplatte synchronisiert werden, können Sie davon ausgehen, dass einige Daten geschrieben werden. Wenn Daten nicht auf die Festplatte geschrieben werden, müssen sie im Speicher verbleiben, und in der Zwischenzeit kann dieser Speicher nicht für andere, nützlichere Dinge verwendet werden. Darüber hinaus wäre es Verschwendung, die Festplatte nicht zu beanspruchen: Wenn Daten geschrieben werden müssen, beginnt der Kernel mit dem Schreiben, während die Anwendung weiterhin ausgeführt wird und weitere Daten erzeugt.

¹ Resilienz ist im Kontext des Dateisystemdesigns die Frage, ob eine Änderung am Dateisystem erhalten bleibt, wenn das System abstürzt.

verwandte Informationen