Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / Installation, Konfiguration und Verwaltung von zram auf SUSE Linux Micro

Installation, Konfiguration und Verwaltung von zram auf SUSE Linux Micro

Veröffentlicht: 20.03.2025
WAS?

zram ist ein Kernel-Modul, das ein komprimiertes Blockgerät im RAM erstellt.

WARUM?

In diesem Artikel wird beschrieben, wie zram unter SUSE Linux Micro installiert und konfiguriert wird.

AUFWAND

Es dauert ungefähr 15 Minuten, um den Artikel zu lesen.

ZIEL

Sie haben Blockgeräte im RAM konfiguriert.

ANFORDERUNGEN

Ausgeführte und registrierte Instanz von SUSE Linux Micro.

1 Was ist zram?

zram ist ein Kernel-Modul, das ein komprimiertes Blockgerät im RAM erstellt. Das Blockgerät kann als RAM-Disk (in der Regel zum Speichern temporärer Dateien) oder zum Swappen verwendet werden.

1.1 Vorteile von zram

Die Verwendung von zram kann folgende Vorteile haben:

  • Schnelle E/A-Operationen: Aufgrund der RAM-basierten Natur von zram bieten Blockgeräte einen sehr schnellen Zugriff auf Daten.

  • Speichereinsparung: Da die Daten mit zram komprimiert werden, kann ziemlich viel Speicherplatz eingespart werden. Somit nutzt zram den Arbeitsspeicher effizient und eignet sich besonders für Umgebungen mit geringer RAM-Größe, z. B. eingebettete Systeme.

  • Dateisystem auf dem Blockgerät: Sie können Dateisysteme auf den Blockgeräten erstellen.

1.2 Einschränkungen von zram

Der Ruhezustand auf zram swap wird nicht unterstützt, selbst wenn Sie ein Sicherungsgerät auf permanentem Speicher konfigurieren.

2 Einrichten von zram

Zum ordnungsgemäßen Einrichten von zram auf Ihrem System führen Sie die folgenden Schritte aus. Einzelheiten finden Sie in den folgenden Abschnitten.

  1. Installieren Sie das Dienstprogramm zram-generator, das das RAM-Blockgerät gemäß der bereitgestellten Konfiguration erstellt. Weitere Informationen zur Installation finden Sie in Abschnitt 2.1, „Installieren von zram-Paketen“.

  2. Bereiten Sie die Konfiguration wie in Abschnitt 2.2, „Erforderliche Konfiguration für zram“ beschrieben vor.

  3. Führen Sie Kommandos aus, um neue Geräteeinheiten zu erstellen, wie in Abschnitt 2.3, „Erstellen von Geräteeinheiten“ beschrieben.

  4. Starten Sie Ihren Rechner neu.

  5. Stellen Sie sicher, dass alles ordnungsgemäß funktioniert. Führen Sie das Kommando zramctl aus, das eine Ausgabe ähnlich der folgenden erzeugen sollte:

    > sudozramctl
    
    NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
    /dev/zram1 lzo-rle      96.6M   4K   79B   12K       1 [SWAP]
    /dev/zram0 lzo-rle       483M   4K   79B   12K       1 [SWAP]

2.1 Installieren von zram-Paketen

Das Paket zram-generator ist unter SUSE Linux Micro nicht standardmäßig verfügbar. Installieren Sie das Paket :

        > 
        sudo
        transactional-update pkg install zram-generator

Starten Sie das System nach erfolgreicher Installation neu.

2.2 Erforderliche Konfiguration für zram

Die Hauptkonfigurationsdatei von zram ist /etc/systemd/zram-generator.conf. Sie können jedoch ein Verzeichnis /etc/systemd/zram-generator.conf.d/ mit einer Reihe von Drop-In-Dateien erstellen, die Einträge in der Hauptkonfigurationsdatei überschreiben können.

2.2.1 Die /etc/systemd/zram-generator.conf-Datei

Die Datei wird nicht zusammen mit dem zram-generator-Paket installiert, daher müssen Sie Ihre eigene Datei schreiben. Die hinzuzufügenden Optionen werden im Folgenden beschrieben. Ein Beispiel hierzu finden Sie in Abschnitt 2.2.1.1, „Ein Beispiel für /etc/systemd/zram-generator.conf.

Definieren Sie mindestens ein zram-Gerät. Die Nummerierung beginnt bei 0. Wenn Sie also ein zram-Gerät definieren möchten, fügen Sie der Konfigurationsdatei einen Abschnitt [zram0] hinzu.

Unter dem Abschnitt „zram-Gerät“ können Sie folgende Einträge definieren:

host-memory-limit

Geben Sie die maximale RAM-Größe des Hosts in MiB an, wenn ein Blockgerät erstellt werden kann. Wenn der Wert höher ist, wird das zram-Gerät nicht erstellt. Wenn nicht festgelegt oder auf none festgelegt, gibt es keine Begrenzung für den Host-RAM.

zram-size

Geben Sie die Größe des zram-Geräts im Vergleich zum Host-RAM an. Der Standardwert ist zram-size = min(ram / 10, RAM_HARD_LIMIT). Es ist ein Minimum von beidem, wobei ram die Host-RAM-Größe ist, die mit MemTotal abgerufen wurde.

  • ram ist die Gesamtmenge des Host-Speichers in MB.

  • ram/10 ist das Verhältnis des gesamten Host-Speichers, der für zram verwendet werden kann. Dem Beispiel zufolge kann zram 10 % des gesamten Host-Speichers verwenden. Wir empfehlen Anteile des Host-RAM im Bereich von 10 bis 50 %.

  • RAM_HARD_LIMIT ist die maximale Menge an RAM in MB, die von zram verwendet werden kann.

  • min() ist eine Funktion, die den Wert von RAM_HARD_LIMIT mit dem berechneten Verhältnis vergleicht und den niedrigeren Wert auswählt.

compression-algorithm

Geben Sie den Algorithmus an, der zum Komprimieren von Daten in zram verwendet wird. Sie können jeden beliebigen der folgenden Werte verwenden:

  • deflate: ein verlustfreies Dateiformat für die Datenkomprimierung

  • lz4 oder lz4hc: ein verlustfreier Datenkomprimierungsalgorithmus, der sich auf die Komprimierungs- und Dekomprimierungsgeschwindigkeit konzentriert

  • lzo-rle: ein verlustfreier Datenkomprimierungsalgorithmus, der sich auf die Dekomprimierungsgeschwindigkeit konzentriert

  • zstd alias Zstandard: ein verlustfreier Datenkomprimierungsalgorithmus, vergleichbar mit DEFLATE mit dem Kompressionsverhältnis, aber schneller während der Dekomprimierung

  • 842: ein Datenkomprimierungsalgorithmus

Wenn nicht angegeben, wird der Kernel-Standard verwendet (normalerweise LZO-RLE).

Optionen

Geben Sie Optionen für Auslagerungs- oder Bereitstellungsoptionen für eine RAM-Disk an. Wenn diese Option auf discard festgelegt oder nicht angegeben ist, werden die nicht verwendeten komprimierten Seiten während des Systemlaufs gekürzt. Eine solche Lösung bietet ein effizientes zram-Management. Um den Standardwert (discard) zu überschreiben, lassen Sie den Wert leer:

options =
writeback-device

Geben Sie ein Gerät an, auf dem nicht komprimierbare Seiten gespeichert werden sollen. Diese Seiten werden dann aus zram entfernt.

fs-type

Wenn das Gerät als Datenträger verwendet wird, geben Sie das Dateisystem an, das dort verwendet werden soll. Beispiel: ext4.

mount-point

Geben Sie ein Verzeichnis an, in dem das Dateisystem eingehängt werden soll. Diese Option wird nicht verwendet, wenn das zram-Gerät für den Austausch verwendet wird.

2.2.1.1 Ein Beispiel für /etc/systemd/zram-generator.conf

Im folgenden Beispiel werden zwei Blockgeräte im RAM erstellt – zram0 für Swap und zram1 mit dem ext4-Dateisystem. Wenn der Rechner über mehr als 9 GB RAM verfügt, wird zram0 nicht erstellt. Jedes Blockgerät kann bis zu 2 GB RAM zuweisen.

[zram0]
host-memory-limit = 9048      
zram-size = min(ram / 10, 2048)    
compression-algorithm = lzo-rle    
options = discard      
writeback-device = /dev/zvol/tarta-zoot/swap-writeback
    
[zram1]      
zram-size = ram / 10
fs-type = ext4
mount-point = /run/compressed-mount-point

2.3 Erstellen von Geräteeinheiten

Nachdem Sie die Konfiguration vorbereitet haben, erstellen und starten Sie die Geräte. Gehen Sie dazu wie folgt vor:

  1. Erstellen Sie die zram-Geräteeinheiten, indem Sie folgendes Kommando ausführen:

                > 
                sudo
                systemctl daemon-reload
  2. Starten Sie das Gerät:

    > sudosystemctl start DEVICE_NAMEDEVICE_NAME is the name you configured in
    /etc/systemd/zram-generator.conf and it is in the format /dev/zramN
  3. Um zu überprüfen, ob die Module gestartet wurden, führen Sie folgendes Kommando für jedes Gerät aus:

                > 
                sudo
                systemctl status DEVICE_NAME