Das Handbuch für die Option "Barriere" lautet:
Barriere = 0 / Barriere = 1
Dies deaktiviert / aktiviert die Verwendung von Schreibbarrieren im jbd code.barrier = 0 deaktiviert, barrier = 1 aktiviert (Standard). Dies erfordert auch einen IO-Stack, der Barrieren unterstützen kann. Wenn jbd einen Fehler beim Schreiben einer Barriere erhält, werden die Barrieren mit einer Warnung wieder deaktiviert. Schreibbarrieren erzwingen eine ordnungsgemäße Anordnung der Journal-Commits auf der Festplatte, wodurch Schreibcaches für flüchtige Datenträger sicher und mit Leistungseinbußen verwendet werden können. Wenn Ihre Festplatten auf die eine oder andere Weise batteriegepuffert sind, kann das Deaktivieren von Barrieren die Leistung sicher verbessern.
Aber ich weiß nicht, was der Satz " Ordnungsgemäße Bestellung von Journal-Commits auf der Festplatte " bedeutet.
Angenommen, normale Reihenfolge - Journal 1, Daten 1; Journal 2, Daten 2.
Welches der folgenden Bestellergebnisse tritt auf, wenn ich einstelle barrier=0
?
- Journal 2, Daten 2; Journal 1, Daten 1;
- Daten 1, Journal 1; Daten 2, Journal 2.
barrier=1
und es läuft schnell genug für mich. Wenn du nicht wirklich schwere Sachen machst, würde ich es belassen. Sie haben RAM-Puffer, sodass die Daten nach Möglichkeit ohne Verzögerung für die Anwendungen ausgeschrieben werden. Und sehr wenig Verzögerung beim Schreiben auf die Festplatte. Wenn Sie wissen möchten, wie viel die RAM-Puffer beschleunigen, fügen Sie sync = 1 zu Ihrem Ausgangsverzeichnis hinzu und versuchen Sie, Ihr System ein oder zwei Tage lang zu verwenden.Antworten:
Bei den meisten modernen Dateisystemen handelt es sich um Journaldateisysteme. Dies bedeutet, dass sie Änderungen, die noch nicht auf die Festplatte geschrieben wurden, in einer internen Datenstruktur, die als Journal bezeichnet wird, nachverfolgen. Im Falle eines Absturzes wird dieses Journal erneut abgespielt, um sicherzustellen, dass alle Schreibvorgänge erfolgreich durchgeführt wurden, um eine Beschädigung der Dateien zu verhindern.
Wenn die Daten tatsächlich auf die Festplatte geschrieben werden, ordnet der Schreibcache die Schreibvorgänge neu an, um den Durchsatz zu maximieren. Er muss jedoch sicherstellen, dass die eigentlichen Dateidaten vor den Metadaten auf die Festplatte geschrieben werden, um sicherzustellen, dass sie bei einem Absturz auftreten Tritt ein, sind die Metadaten mit den Daten nicht veraltet.
Das Problem ist, dass viele Festplatten eigene Caches haben, mit denen auch die Schreibvorgänge neu sortiert werden können. Einige Dateisysteme gehen davon aus, dass dies passieren wird, und zwingen die Festplatte, den Cache an bestimmten Punkten zu
write barriers
leeren, um dies zu verhindern. Dies wird z . B. in ext4 und Linux im Allgemeinen aufgerufen .Bei modernen Datenträgern ist der Leistungsverlust hierfür jedoch vernachlässigbar und Sie sollten keine Schreibbarrieren deaktivieren, es sei denn, dies ist unbedingt erforderlich.
quelle
Aus diesem LWN-Artikel :
quelle