Verwendung von tmpfs und SSD für den intelligenten Cache

1166
Ilya Georgievsky

Ich möchte unter Linux eine schnelle logische Festplatte zum Speichern temporärer Dateien erstellen. Diese Dateien habe ich keine Angst zu verlieren.

Auf meinem Rechner habe ich 128 GB RAM und 512 GB SSD-Datenträger. Ich möchte also 50% meines Arbeitsspeichers als tmpfs und 50% der SSD-Festplatte für diesen Cache verwenden, da manchmal 50% meines Arbeitsspeichers für den Cache nicht ausreichen. Wenn die tmpfs-Festplatte voll ist, möchte ich 50% meiner SSD verwenden Dateien schreiben. Wenn auf tmpfs genug Speicherplatz vorhanden ist, darf nur tmpfs verwendet werden.

Wie kann ich diese Strategie für meinen Cache erreichen? Kann ein LVM mit Prioritäten sein? Wie kann ich das einrichten?

0

1 Antwort auf die Frage

0
Sidias-Korrado
  1. Zunächst sollten Sie sich darüber im Klaren sein, ob Sie einen Cache oder einen schnellen Speicher benötigen. Der Speicher kann nicht gleichzeitig als Cache und als Speicher verwendet werden.

  2. Sie haben nicht erwähnt, was in diesem Fall passieren soll, wenn Sie eine Datei aus dem RAM-Speicherteil löschen, wenn sie voll ist und sich Dateien auf SSD befinden

    • sollten die Dateien automatisch von ssd verschoben werden (auch nur teilweise?)
    • oder am aktuellen Standort bleiben
  3. und was ist mit dem Fall einer Datei, die teilweise auf SSD übergeht?

    • sollte es auf ssd ganz sein
    • oder teilweise auf Ramdisk

Vielleicht lesen Sie http://blog-vpodzime.rhcloud.com/?p=45

Mein Vorschlag ist: Verwenden Sie SSD-Speicherplatz als Dateisystem und lassen Sie Speicher frei - es wird automatisch als Dateicache vom Betriebssystem verwendet

Eine andere Möglichkeit ist die Verwendung von ZFS auf ssd. Setzen Sie dann die ARC-Größe auf die gewünschte Cache-Größe

1. Ich möchte einen möglichst schnellen Speicherplatz. 2. Gute Frage, ich möchte mir keine Sorgen machen. Es kann sein, dass es nicht "granular" ist, sondern "cluster granular". Wenn auf der RAM-Disk etwas freier Speicherplatz vorhanden ist, müssen die nächsten Schreibblöcke auf die RAM-Disk geschrieben werden. 3. Beantwortet im vorherigen Info-OS-Cache: Soweit ich weiß, hat der OS-Cache einige Garantien dafür, dass Informationen nicht verloren gehen. Daher sperrt das Betriebssystem einige Male auf die langsame Festplatte. Ich möchte diesen Leistungsabfall nicht Ilya Georgievsky vor 8 Jahren 0
Die Leistungsbeeinträchtigung tritt beim Schreiben auf und kann durch Deaktivieren des synchronen Zugriffs gemindert werden. Abhängig vom ausgewählten Dateisystem. Überprüfen Sie die Einstellungen wie data = writeback, commit = nrsec, nobarrier Sidias-Korrado vor 8 Jahren 0
Haben Sie Tuning-Parameter wie https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/ ausprobiert? Sidias-Korrado vor 8 Jahren 0
verwende auch nicht die discard-Option von ext4 auf ssd, es ist langsam und es ist besser, fstrim in regelmäßigen Abständen durchzuführen Sidias-Korrado vor 8 Jahren 0
Ich denke, die realistischste Lösung ist, zwei Dateisysteme zu haben und die Anwendungsebene entscheiden zu lassen, welche Anwendung sie verwenden soll Sidias-Korrado vor 8 Jahren 0
Eine andere Möglichkeit wäre, eine FUSE-Ebene zu erstellen, aber FUSE ist langsam Sidias-Korrado vor 8 Jahren 0
Eine weitere Option ist die Überwachung des freien Speicherplatzes von tmpfs. Wenn der Speicherplatz zu niedrig ist, verschieben Sie die Dateien in ssd und platzieren Sie Symlinks. Wenn genügend Speicherplatz zur Verfügung steht, verwenden Sie inotify, wahrscheinlich am besten in Python geschrieben Sidias-Korrado vor 8 Jahren 0