Vor ein paar Wochen habe ich veröffentlicht. Da der Raspberry Pi 4 ebenfalls auf ARM basiert, sind einige der in dem vorherigen Artikel erwÀhnten Optimierungen durchaus geeignet. Ich möchte diese Tricks teilen und herausfinden, ob sich bei Ihnen Àhnliche Leistungsverbesserungen zeigen.
Nach der Installation des Raspberry Pi in meinem stellte ich fest, dass er in Momenten mit unzureichendem Arbeitsspeicher sehr trĂ€ge wurde und sogar hĂ€ngen blieb. Um dieses Problem zu lösen, habe ich ZRAM hinzugefĂŒgt und einige Ănderungen an den Kernelparametern vorgenommen.
Aktivierung von ZRAM auf dem Raspberry Pi

erzeugt im Arbeitsspeicher ein BlockspeichergerÀt mit dem Namen /dev/zram0 (oder 1, 2, 3 usw.). Die dort gespeicherten Seiten werden komprimiert und im Speicher gehalten. Dies ermöglicht sehr schnelle Ein- und Ausgaben und schafft durch Kompression Speicherplatz frei.
Der Raspberry Pi 4 ist mit 1, 2, 4 oder 8 GB RAM ausgestattet. Ich werde das Modell mit 1 GB verwenden, also passen Sie die Anleitung je nach Ihrem Modell an. Mit 1 GB wird die standardmĂ€Ăige Swap-Datei (langsam!) seltener verwendet. Ich habe folgendes Skript verwendet fĂŒr die Installation und automatische Konfiguration.
Die Anweisungen finden Sie im Repository unter dem obigen Link. Installation:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.shWenn Sie die Konfiguration bearbeiten möchten:
vi /etc/default/zram-swap DarĂŒber hinaus kann ZRAM durch die Installation von zram-tools. aktiviert werden. Wenn Sie diese Methode verwenden, stellen Sie sicher, dass Sie die Konfiguration bearbeiten in der Datei /etc/default/zramswap, und richten Sie etwa 1 GB ZRAM ein:
sudo apt install zram-toolsNach der Installation können Sie die ZRAM-Speicherstatistik mit dem folgenden Befehl anzeigen:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $Kernelparameter fĂŒr eine bessere Nutzung von ZRAM hinzufĂŒgen
Jetzt verbessern wir das Verhalten des Systems, wenn der Raspberry Pi im letzten Moment auf Swap umschaltet, was oft zu HĂ€ngern fĂŒhrt. FĂŒgen wir einige Zeilen in die Datei ein /etc/sysctl.conf und starten wir neu.
Diese Zeilen 1) verzögern das unvermeidliche Speichererschöpfung, indem sie den Druck auf den Kernel-Cache erhöhen und 2) leisten frĂŒhzeitig Vorbereitungen fĂŒr den Speicherabbau, indem sie das Swapping im Voraus initiieren. Aber es wird ein viel effizienteres Swapping mit komprimiertem Speicher ĂŒber ZRAM sein!
Hier sind die Zeilen, die am Ende der Datei hinzugefĂŒgt werden mĂŒssen /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50Dann starten wir das System neu oder aktivieren die Ănderungen mit dem folgenden Befehl:
sudo sysctl --systemvm.vfs_cache_pressure=500 erhöht den Druck auf den Cache, was die Neigung des Kernels erhöht, den fĂŒr das Caching von Verzeichniss- und Indexobjekten verwendeten Speicher zurĂŒckzuholen. Sie benötigen ĂŒber einen lĂ€ngeren Zeitraum weniger Speicher. Ein drastischer Leistungsabfall wird durch hĂ€ufigeres Swapping ausgeglichen.
vm.swappiness=100 erhöht den Parameter, wie aggressiv der Kernel Seiten aus dem Speicher swappen wird, da wir zunÀchst ZRAM verwenden.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 â Hintergrundprozesse beginnen sofort mit dem Schreiben, sobald das Limit von 1 % erreicht ist, aber das System wird keine erzwungenen synchronen Ein-/Ausgaben durchfĂŒhren, bis es das dirty_ratio von 50 % erreicht.
Diese vier Zeilen (in Verbindung mit ZRAM) helfen, die Leistung zu verbessern, falls Sie unweigerlich an den Ende Ihres Arbeitsspeichers geraten und auf Swapping umschalten, wie es bei mir der Fall ist. In Anbetracht dieser Tatsache und auch aufgrund der dreifachen Kompression des Speichers in ZRAM ist es besser, mit dem Swapping frĂŒhzeitig zu beginnen.
Der Druck auf den Cache hilft, da wir dem Kernel tatsĂ€chlich sagen: âHey, hör zu, ich habe keinen zusĂ€tzlichen Speicher, um ihn fĂŒr den Cache zu verwenden, also bitte befreie ihn so schnell wie möglich und speichere nur die hĂ€ufigsten/wichtigsten Daten.â
Selbst bei reduziertem Caching, wenn im Laufe der Zeit der GroĂteil des verfĂŒgbaren Speichers belegt ist, wird der Kernel viel frĂŒher opportunistisch swappen, sodass die CPU (Kompression) und der Swapping-Ein-/Ausgabe nicht bis zur letzten Minute warten und nicht alle Ressourcen auf einmal beanspruchen, wenn es bereits zu spĂ€t ist. ZRAM benötigt etwas CPU fĂŒr die Kompression, aber in den meisten Systemen mit wenig Speicher hat das viel weniger Auswirkungen auf die Leistung als Swapping ohne ZRAM.
AbschlieĂend
Lassen Sie uns noch einmal das Ergebnis betrachten:
pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi
pi@raspberrypi:~ $ sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5264448 in ZRAM ist fast ein Gigabyte unkomprimierter Daten. Alles ist in ZRAM gegangen und nichts hat es in die viel langsamere Swap-Datei geschafft. Probieren Sie selbst solche Einstellungen aus, sie funktionieren bei allen Modellen von Raspberry Pi. Bei mir hat sich ein instabiles System in ein funktionierendes und stabiles verwandelt.
In naher Zukunft hoffe ich, diesen Artikel mit einigen Ergebnissen der Tests des Systems vor und nach der Installation von ZRAM fortzusetzen und zu aktualisieren. Momentan habe ich einfach nicht die Zeit dafĂŒr. In der Zwischenzeit scheuen Sie sich nicht, Ihre eigenen Tests durchzufĂŒhren und lassen Sie es mich in den Kommentaren wissen. Der Raspberry Pi 4 ist mit diesen Einstellungen einfach ein Biest. Viel SpaĂ!
Zum Thema:
- (2017)
- (2020)
Quelle: habr.com
