Vor- und Nachteile der Erhöhung von "commit" in fstab

14

Ich habe in der Vergangenheit viele undurchsichtige Systemoptimierungen vorgenommen, aber die meisten wurden beseitigt , nachdem powertopmir gesagt wurde, ich solle meine USB-Anschlüsse auf Autosuspend setzen , was sie zum ewigen Schlaf zwang und auch nachdem ich die Vorteile eines höheren Wechsels erkannte .

Aber heute /etc/fstabhabe ich beim Betrachten festgestellt, dass ich die Option commit=60für / und / home festgelegt habe . Ich erinnere mich, dass dies eine Optimierung für Laptops war, um die Anzahl der Schreibvorgänge auf der Festplatte zu verringern und so Batterie zu sparen. Aber dann wurde ich besorgt, dass dies zu Datenverlust führen könnte (manchmal wird meine Batterie abgeklemmt und beim Booten werden fsckmir einige verwaiste Inodes gemeldet).

Bei der Suche nach einer Erklärung für diese Option bin ich zu den folgenden Erklärungen gekommen (die zweite scheint meinem vorherigen Verständnis zu widersprechen):

$ man mount | awk '/commit=/,/^$/'
commit=nrsec
    Sync all data and metadata every nrsec seconds. The default value is 5 seconds.
    Zero means default.

https://forums.gentoo.org/viewtopic-p-4088752.html

commit = 60 stoppt die "sofortige" Priorisierung (Standardeinstellung 5 Sekunden) von Schreibvorgängen mit zu hohen Lesezugriffen und zwischenspeichert die Schreibvorgänge einige Sekunden später. Dies ist gut in Situationen, in denen viele Lese- und Schreibvorgänge gemischt sind und der Benutzer möchte, dass die Lesevorgänge Vorrang haben, damit der Prozessor beschäftigt bleibt und nicht pausiert, während er darauf wartet, dass die Schreibvorgänge abgeschlossen sind, bevor er mit dem Lesen fortfährt.

Ein Beispiel aus der realen Welt, das ich gesehen habe, wartet einige Sekunden darauf, dass das Gnome-Pulldown-Menü angezeigt wird, und zwar ohne ersichtlichen Grund. Der Grund dafür war, dass die Festplatte mit dem Schreiben beschäftigt war. Die CPU musste warten, bis der Schreibvorgang abgeschlossen war, bevor sie alle Daten von der Festplatte abrufen konnte, um das Menü anzeigen zu können.

Was macht Commit wirklich? Gibt es wirklich Vorteile der Erhöhung (wie Reaktionsfähigkeit und Energieeinsparungen)? Kann es tatsächlich zu Datenverlust kommen?

Teresa und Junior
quelle

Antworten:

12

Was macht Commit wirklich?

Ich denke, eine der besten Erklärungen wurde hier von allquixotic gegeben .

Gibt es wirklich Vorteile der Erhöhung (wie Reaktionsfähigkeit und Energieeinsparungen)? Kann es tatsächlich zu Datenverlust kommen?

Gemäß der ext4 offiziellen Dokumentation :

Ext4 kann angewiesen werden, alle 'nrsec' Sekunden alle seine Daten und Metadaten zu synchronisieren. Der Standardwert ist 5 Sekunden. Dies bedeutet, dass Sie , wenn Sie Ihre Energie verlieren, so viel verlieren wie die letzten 5 Sekunden der Arbeit (Ihr Dateisystem wird jedoch dank der Aufzeichnung nicht beschädigt). Dieser Standardwert (oder ein niedriger Wert) beeinträchtigt die Leistung, ist jedoch gut für die Datensicherheit . Das Setzen auf 0 hat den gleichen Effekt wie das Belassen der Standardeinstellung (5 Sekunden). Wenn Sie einen sehr großen Wert festlegen, wird die Leistung verbessert .

Steigender commitWert bedeutet, dass Sie möglicherweise so viel Zeit verlieren wie die letzten N Sekunden der Arbeit (wobei N = Festschreibungsintervall ), obwohl dies in den meisten Fällen nicht der Fall ist, da die Software immer noch fsync () aufrufen und ihre Daten auf die Festplatte schreiben kann, wobei das überschrieben wird Commit-Einstellung. Man könnte es als "schreibe alles mindestens so oft auf die Festplatte" ansehen . 1
Auf der anderen Seite bedeutet dies weniger Schreibvorgänge (was es bei SSD-Benutzern sehr beliebt macht) und eine bessere Leistung (mehrere Schreibvorgänge werden zu einem einzigen größeren Schreibvorgang kombiniert, Aktualisierungen früherer Schreibvorgänge innerhalb des Festschreibungszeitraums werden abgebrochen).
Was die Energieeinsparung betrifft , so hat sich laut dieser Seite herausgestellt, dass heutzutage ein steigender commitWert keine Energieeinsparung bedeutet.

don_crissti
quelle
1
Ich denke, eine gewisse Stromersparnis ist darauf zurückzuführen, dass das Ausmaß und die verzögerte Zuweisung die HDD-Suche viel besser optimieren können. Aber es ist wahrscheinlich nicht signifikant.
Peterh - Wiedereinsetzung von Monica