Installation, Konfiguration und Verwaltung von zram auf SUSE Linux Micro
- 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.
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“.Bereiten Sie die Konfiguration wie in Abschnitt 2.2, „Erforderliche Konfiguration für zram“ beschrieben vor.
Führen Sie Kommandos aus, um neue Geräteeinheiten zu erstellen, wie in Abschnitt 2.3, „Erstellen von Geräteeinheiten“ beschrieben.
Starten Sie Ihren Rechner neu.
Stellen Sie sicher, dass alles ordnungsgemäß funktioniert. Führen Sie das Kommando
zramctl
aus, das eine Ausgabe ähnlich der folgenden erzeugen sollte:>
sudo
zramctl
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, wobeiram
die Host-RAM-Größe ist, die mitMemTotal
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 Datenkomprimierunglz4
oderlz4hc
: ein verlustfreier Datenkomprimierungsalgorithmus, der sich auf die Komprimierungs- und Dekomprimierungsgeschwindigkeit konzentriertlzo-rle
: ein verlustfreier Datenkomprimierungsalgorithmus, der sich auf die Dekomprimierungsgeschwindigkeit konzentriertzstd
alias Zstandard: ein verlustfreier Datenkomprimierungsalgorithmus, vergleichbar mit DEFLATE mit dem Kompressionsverhältnis, aber schneller während der Dekomprimierung842
: 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:
Erstellen Sie die zram-Geräteeinheiten, indem Sie folgendes Kommando ausführen:
>
sudo
systemctl daemon-reload
Starten Sie das Gerät:
>
sudo
systemctl start DEVICE_NAME
DEVICE_NAME is the name you configured in/etc/systemd/zram-generator.conf
and it is in the format/dev/zramN
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
3 Rechtliche Hinweise #
Copyright © 2006–2025 SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie im Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie im https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.