Beim Schreiben von Inhalten auf Wechselmedien unter Linux (USB-Sticks / Festplatten, SD-Karten usw.) sehe ich oft unglaubliche Schreibgeschwindigkeiten in den ersten Sekunden, manchmal in der Größenordnung von GB / s (Füllen des Schreibpuffers), gefolgt von mehreren Minuten Ruhe (Puffer wird tatsächlich auf das Gerät geschrieben).
Es ist irreführend. Es macht es schwierig, die tatsächliche Schreibgeschwindigkeit zu beurteilen. Es ist ärgerlich (kann ein Programm nicht unterbrechen, während es Puffer leert). Dies kann FS-Schäden und zumindest ungeschriebenen Inhalt verursachen, wenn das Gerät vom Netz getrennt wird, während es noch geschrieben wird.
Der Schreibpuffer scheint in meinem Fall über einem GB zu liegen. Gibt es eine Möglichkeit, dies zu kontrollieren? Ich möchte es auf einen vernünftigeren Wert reduzieren.
Hinweis: Hierbei handelt es sich nicht um den Dateisystem-Cache. Dieser Effekt tritt auch auf RAW-Geräten auf
Hinweis: Ich möchte Schreibpuffer nicht vollständig deaktivieren
Vielen Dank!
quelle
umount
ein fs zu verwenden (verwenden Sie in der GUI die Schaltfläche 'Auswerfen' am gemounteten fs-Knoten in der vom Dateimanager angezeigten Baumstruktur). Dasumount
schließt alle ausstehenden E / A-Vorgänge effektiv ab und spült alle ausstehenden Fs-Cashes.dd
, müssen Sie sicherstellen, dass Sie etwas wie verwenden,sync
bevor Sie das Gerät entfernen)Antworten:
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-Puffers auf z. B. 200 MB zu ändern, kann man verwenden
ODER um einen Prozentsatz des Arbeitsspeichers zu verwenden, z. B. 1%:
Weitere Informationen: https://lwn.net/Articles/572911/
quelle
dirty_ratio
20. Der 32-Bit-Kernel verfügt jedoch aufgrund der Beschränkungen der 32-Bit-x86-Architektur über ein maximal verfügbares Kernel-RAM-Limit von 1 GB. Infolgedessen beträgt die maximale Standardgröße für den Schreibcache auf einem 32-Bit-System je nach Hardware etwa 180 bis 200 MB (mindestens PCI-Geräte mit DMA-Zugriff reduzieren das nutzbare RAM-Limit).