Ich habe ein Programm, das sehr stark auf das Dateisystem trifft und zufällig eine Reihe von Arbeitsdateien liest und schreibt. Die Dateien sind mehrere Gigabyte groß, aber ich kann den Arbeitsspeicher schonen, um sie größtenteils im Arbeitsspeicher zu behalten. Die Maschinen, auf denen dieses Programm ausgeführt wird, sind normalerweise Ubuntu-Linux-Boxen.
Gibt es eine Möglichkeit, das Dateisystem so zu konfigurieren, dass es einen sehr sehr großen Cache hat und sogar Schreibvorgänge zwischenspeichert, damit sie später auf die Festplatte gelangen? Ich verstehe die Probleme mit Stromausfall oder Ähnlichem und bin bereit, das zu akzeptieren. Bei einem Absturz sollten die Schreibvorgänge im Normalbetrieb die Festplatte erreichen!
Oder gibt es eine Möglichkeit, eine RAM-Disk zu erstellen, die auf die reale Disk durchschreibt?
quelle
Erwägen Sie die Verwendung eines ext4-Dateisystems mit schnellen und losen Mount-Optionen:
Verschieben des Schreibens von Daten aus dem Cache zurück auf die physische Festplatte.
Ansonsten können Sie
aufs
ein tmpfs-Dateisystem über Ihr reguläres Dateisystem unionsmounten, den gesamten Schreibvorgang ausführen und die tmpfs anschließend wieder zum realen Dateisystem zusammenführen.quelle
Linux verwendet standardmäßig einen beliebigen freien Arbeitsspeicher als Dateicache, sodass hierfür keine Konfiguration erforderlich ist.
Möglicherweise möchten Sie ext4 als Dateisystem verwenden. Es werden eine Reihe von Techniken verwendet, um den Festplattenzugriff zu beschleunigen, einschließlich verzögerter Zuweisung, die:
Datenverlust ist aufgrund der Verwendung von Journaling ziemlich selten .
Ext4 ist jetzt das Standarddateisystem in neueren Linux-Versionen, obwohl Sie wahrscheinlich sicherstellen möchten, dass der von Ihnen verwendete Kernel mindestens 2.6.30 ist
quelle
Verwenden Sie mmap für diese Dateien - es wird das überlegene Caching des Kernels verwendet, wodurch es viel schneller wird.
quelle
Sie können meine Antwort hier sehen: Reservieren Sie RAM für Cache und Puffer . Wenn Sie Speicher für Cache und Puffer reservieren möchten: Echo 10> / proc / sys / vm / vfs_cache_pressure, wenn 100 der Standardwert ist. Dann können Sie den von jeder App verwendeten maximalen RAM begrenzen: echo 8192> / proc / sys / vm / max_map_count.
quelle
Linux nutzt Ihren Arbeitsspeicher sehr effizient .
Ich glaube nicht, dass Sie wirklich daran arbeiten müssen, Dinge mit großen Dateien zwischenzuspeichern.
Probieren Sie diese Dinge aus, um dies selbst zu überprüfen .
Überprüfen Sie, wie viel RAM Ihr System hat und ob Sie es skalieren können.
Für diesen Zweck wird keine RAM-Disk benötigt,
der Disk-Cache funktioniert mit dem gesamten verfügbaren RAM-Speicher.
quelle
RapidCache stellt eine RAM-Disk mit Write-Through zur Verfügung, befindet sich jedoch derzeit in der Beta- Phase .
quelle