Ich habe in der Vergangenheit viele undurchsichtige Systemoptimierungen vorgenommen, aber die meisten wurden beseitigt , nachdem powertop
mir 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/fstab
habe ich beim Betrachten festgestellt, dass ich die Option commit=60
fü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 fsck
mir 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?