Der Raspberry PI Zero hat mit seinen 512MB verhältnismäßig wenig RAM, dieser lässt sich durch Komprimierung jedoch virtuell erweitern.
Bei einer frischen installation von Raspberry PI OS 12 (Bookworm) sieht die Speicherauslastung ähnlich der folgenden aus.
user@raspberrypi:~ $ free -m
total used free shared buff/cache available
Mem: 427 140 109 0 226 287
Swap: 511 0 511
In dem Beispiel stehen 427 MB physischer Speicher zur Verfügung. Der Rest ist aktuell als RAM für die GPU reserviert. Bei dem verfügbaren Swap Speicher handelt es sich um eine Datei auf der SD Karte. Muss der Swap verwendet werden, kann es zu einem erhöhten Verschleiß der SD Karte kommen und das Dateisystem des Raspberry PI soll in dem aktuellen Fall später auch read-only sein, in diesem Fall kann die Datei auf der SD Karte nicht angelegt werden.
Es gibt jedoch die Möglichkeit den RAM zu komprimieren und damit virtuell mehr RAM zu erzeugen. Dies wurde in der Vergangenheit zum Beispiel auch bei presigünstigeren Tablets mit wenig RAM eingesetzt.
In der aktuellen Debian 12/Raspberry PI OS Version kann dies in wenigen Schritten eingerichtet werden. Dazu wird das Paket systemd-zram-generator
benötigt, welches wie folgt installiert werden kann.
user@raspberrypi:~ $ sudo apt-get install systemd-zram-generator
Standardmäßig wird die Hälfte vom RAM für den ZRAM verwendet und zusätzlich als Swap bereitgestellt. Wie dies im folgenden Beispiel zu sehen ist.
user@raspberrypi:~ $ free -m
total used free shared buff/cache available
Mem: 427 95 202 0 178 331
Swap: 725 0 724
Anschließend kann die Swap Datei deaktiviert werden.
user@raspberrypi:~ $ sudo systemctl stop dphys-swapfile.service
user@raspberrypi:~ $ sudo systemctl disable dphys-swapfile.service
Jetzt ist nur noch der per ZRAM komprimierte RAM als Swap verfügbar. Was dann wie folgt aussieht.
user@raspberrypi:~ $ free -m
total used free shared buff/cache available
Mem: 427 96 201 0 178 331
Swap: 213 0 213
Weitere anpassungen können über die Config Datei /etc/systemd/zram-generator.conf
vorgenommen werden. Die mit ihren Standardwerten wie folgt aussehen sollte.
[zram0]
zram-size = ram / 2
Links
- zram generator auf GitHub (englisch)