Vor ein paar Wochen habe ich . Da das Raspberry Pi 4 ebenfalls auf ARM basiert, sind einige der in dem vorherigen Artikel erwähnten Optimierungen durchaus passend. Ich möchte diese Tricks teilen und erfahren, ob Sie ähnliche Leistungsverbesserungen feststellen können.
Nachdem ich die Raspberry Pi in meiner installiert hatte, bemerkte ich, dass sie in Zeiten von Speichermangel sehr unempfindlich wurde und sogar eingefroren ist. Um dieses Problem zu lösen, habe ich ZRAM hinzugefügt und einige Änderungen an den Kernel-Einstellungen vorgenommen.
Aktivierung von ZRAM auf Raspberry Pi

erstellt im RAM einen Blockspeicher 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 Ausgabe und schafft zusätzlichen Speicherplatz durch Kompression.
Das 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 Standard-Swap-Datei (langsam!) seltener verwendet. Ich habe dieses Skript verwendet zur Installation und automatischen 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 können Sie ZRAM aktivieren, indem Sie zram-tools. verwenden. Wenn Sie diese Methode nutzen, bearbeiten Sie unbedingt die Konfiguration in der Datei /etc/default/zramswap, und stellen Sie etwa 1 GB ZRAM bereit:
sudo apt install zram-toolsNach der Installation können Sie die ZRAM-Speicherstatistik mit dem folgenden Befehl einsehen:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $Fügen Sie Kernel-Parameter für eine bessere Nutzung von ZRAM hinzu
Jetzt verbessern wir das Systemverhalten, wenn der Raspberry Pi zuletzt auf Swap umschaltet, was oft zu Einfrierungen führt. Fügen Sie einige Zeilen in die Datei ein /etc/sysctl.conf und starten Sie neu.
Diese Zeilen 1) verzögern das unvermeidliche Auffüllen des Speichers, erhöhen den Druck auf den Kernel-Cache und 2) bereiten sich früher auf das Speicherauslaufen vor, indem sie das Swapping im Voraus initiieren. Aber dies wird eine viel effizientere Kompression über ZRAM ermöglichen!
Hier sind die Zeilen, die Sie am Ende der Datei hinzufügen sollten. /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50Starten Sie das System neu oder aktivieren Sie die Änderungen mit dem folgenden Befehl:
sudo sysctl --systemvm.vfs_cache_pressure=500 erhöht den Druck auf den Cache, was die Tendenz des Kernels erhöht, den für die Zwischenspeicherung von Verzeichnisobjekten und Indizes verwendeten Speicher zurückzugewinnen. Dadurch wird weniger Speicher über einen längeren Zeitraum verwendet. Ein plötzlicher Leistungsabfall wird durch das frühzeitige Swapping ausgeglichen.
vm.swappiness=100 erhöht den Wert, wie aggressiv der Kernel Seiten im Speicher swappen wird, da wir zuerst ZRAM verwenden.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — Hintergrundprozesse beginnen sofort mit dem Schreiben, sobald das Limit von 1% erreicht ist, jedoch wird das System nicht gezwungen, synchrone E/A durchzuführen, bis das dirty_ratio von 50% erreicht ist.
Diese vier Zeilen (in Verbindung mit ZRAM) werden die Leistung verbessern, falls Sie unvermeidlich Speichermangel erleben und mit Swapping beginnen, so wie es mir ergangen ist. Angesichts dieser Tatsache sowie der dreimal besseren Kompression des Speichers in ZRAM ist es besser, mit dem Swapping frühzeitig zu beginnen.
Der Druck auf den Cache ist wichtig, denn damit sagen wir dem Kern: „Hey, hör zu, ich habe keinen zusätzlichen Speicher, um ihn für den Cache zu verwenden, also befreie ihn so schnell wie möglich und speichere nur die am häufigsten verwendeten/wichtigsten Daten.“
Selbst bei reduziertem Caching, wenn über die Zeit der Großteil des verfügbaren Speichers belegt ist, wird der Kern viel früher mit dem opportunistischen Swappen beginnen. So werden Prozessor (Kompression) und der Ein-/Ausgabeworkload nicht bis zum letzten Moment warten und alle Ressourcen gleichzeitig beanspruchen, wenn es bereits zu spät ist. ZRAM benötigt etwas CPU für die Kompression, doch in den meisten Systemen mit geringer Speicherkapazität hat dies weit weniger Auswirkungen auf die Leistung als Swapping ohne ZRAM.
Zusammenfassung
Schauen wir uns das Ergebnis noch einmal an:
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 – das sind fast ein Gigabyte unkomprimierter Daten. Alles ist in ZRAM gegangen und nichts wurde in die viel langsamere Auslagerungsdatei geschrieben. Probieren Sie selbst solche Einstellungen aus, sie funktionieren mit allen Modellen des Raspberry Pi. Mein vorher instabiler Computer hat sich in ein funktionierendes und stabiles System verwandelt.
In naher Zukunft hoffe ich, diesen Artikel mit einigen Testergebnissen zur Systemleistung vor und nach der Installation von ZRAM fortzusetzen und zu aktualisieren. Im Moment habe ich einfach nicht die Zeit dafür. Bis dahin scheuen Sie sich nicht, Ihre eigenen Tests durchzuführen, und lassen Sie es mich in den Kommentaren wissen. Der Raspberry Pi 4 ist einfach großartig mit diesen Einstellungen. Viel Spaß damit!
Zum Thema:
- (2017)
- (2020)
Quelle: habr.com
