Wie kann der Schreibpuffer von Linux für Wechseldatenträger reduziert werden?

Wie kann der Schreibpuffer von Linux für Wechseldatenträger reduziert werden?

Beim Schreiben von Inhalten auf Wechseldatenträger unter Linux (USB-Sticks/HDDs, SD-Karten usw.) erkenne ich in den ersten paar Sekunden oft unglaubliche Schreibgeschwindigkeiten, manchmal im Bereich von GB/s (Füllen des Schreibpuffers), gefolgt von mehreren Minuten Ruhe (der Puffer wird tatsächlich auf das Gerät geschrieben).

Das ist irreführend. Es erschwert die Beurteilung der tatsächlichen Schreibgeschwindigkeit. Es ist ärgerlich (ein Programm kann nicht unterbrochen werden, während es Puffer leert). Es kann zu FS-Schäden und zumindest zu nicht geschriebenem Inhalt führen, wenn das Gerät während des Schreibvorgangs vom Stromnetz getrennt wird.

Der Schreibpuffer scheint in meinem Fall über ein GB groß zu sein. Gibt es eine Möglichkeit, ihn zu kontrollieren? Ich würde ihn gerne auf einen sinnvolleren Wert reduzieren.

Hinweis: Hier geht es nicht um den Dateisystem-Cache. Dieser Effekt tritt auch auf Raw-Geräten auf.

Hinweis: Ich möchte Schreibpuffer nicht vollständig deaktivieren

Danke!

Antwort1

Ich habe die Antwort gefunden. 64-Bit-Linux verwaltet standardmäßig einen großen Schreibpuffer (20 % des verfügbaren Speichers!). (Interessanterweise beschränkt sich 32-Bit-Linux auf höchstens 180 MB.) Um die Größe des Dirty-Buffer auf z. B. 200 MB zu ändern, kann man verwenden

echo 200000000 > /proc/sys/vm/dirty_bytes

ODERum einen Prozentsatz des RAM zu verwenden, z. B. 1 %:

echo 1 > /proc/sys/vm/dirty_ratio

Mehr Informationen:https://lwn.net/Articles/572911/

verwandte Informationen