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/