Raspberry Pi hat eine begrenzte Menge an RAM und mehr kann nicht hinzugefügt werden, da es sich um einen Einplatinencomputer handelt. Der Pi 3 hat nur 1 GB RAM. Der Pi 4 verfügt je nach Modell über bis zu 8 GB RAM. Softwareanwendungen erfordern manchmal mehr Speicher. Meistens handelt es sich bei dieser Speicheranforderung um eine kurze Spitze. In diesem Fall wird der Raspberry Pi aufgrund des begrenzten Speichers entweder „einfrieren“ oder „abstürzen“. Der Absturz kann auch dazu führen, dass die SD-Karte beschädigt wird, was zu Datenverlust führt.
Um die Möglichkeit eines Absturzes zu vermeiden, kann auf dem Pi virtueller Speicher in Form von Swap konfiguriert werden. Die richtige Menge davon muss auf dem richtigen Gerät hinzugefügt werden, um das Beste daraus zu machen. Der gesamte Vorgang wird systematisch mit Anleitungen für verschiedene Betriebssysteme erklärt.
Verstehen, wie Speicherprozesse funktionieren
RAM ist der physische Speicher. Beim Pi 4 befindet es sich neben dem Prozessor. Beim Pi 3 ist RAM auf der Unterseite der Leiterplatte platziert. Im Gegensatz zu normalen Motherboards ist RAM auf einem Raspberry Pi mit der Platine verlötet, was die Möglichkeit der Kapazitätserhöhung einschränkt.
Wenn eine Softwareanwendung ausgeführt wird, verwendet sie einen Teil des Arbeitsspeichers für ihre Funktion. Stellen Sie sich als Beispiel einen Browser vor. Wenn eine Webseite in eine Registerkarte geladen wird, speichert sie die Seitendaten im RAM zusammen mit dem Speicher, der zum Ausführen des Browserprogramms benötigt wird. Wenn mehr Tabs geladen werden, wird der Arbeitsspeicher entsprechend gefüllt. Ohne virtuellen Speicher geht dem Arbeitsspeicher irgendwann die Kapazität aus und neue Tabs können gar nicht mehr geladen werden. Das Durchsuchen der vorhandenen Registerkarten wird ebenfalls erheblich verlangsamt, da für grundlegende Vorgänge kein freier Speicherplatz vorhanden ist. An diesem Punkt reagiert der Pi nicht mehr und der einzige Weg, ihn zurückzubringen, ist durch Power Cycling (Aus- und Einschalten).
Dieses zufällige Herunterfahren kann schwerwiegende Probleme verursachen, insbesondere wenn sich das Betriebssystem auf der SD-Karte befindet. Die Karte könnte in den „schreibgeschützten“ Zustand verfallen oder im schlimmsten Fall ganz beschädigt werden. Dies ist der Fall, wenn ein vollständiger Datenverlust auftritt.
Die Auswirkungen des Zustands „Nicht genügend Arbeitsspeicher (OOM)“ können minimiert werden, indem Swap so konfiguriert wird, dass es als virtueller Speicher verwendet wird. Swap kann in Form einer Datei oder einer Partition auf der Festplatte eingerichtet werden und fungiert als Erweiterung des Arbeitsspeichers. Wenn der verfügbare Arbeitsspeicher erschöpft ist, werden die selten verwendeten Daten darauf in einem als Swapping bezeichneten Prozess in den Swap verschoben. Im Fall des Browser-Beispiels wären dies Daten eines am wenigsten genutzten geladenen Tabs. Wenn die Registerkarte erneut aktiviert wird, werden diese Daten zurück in den Arbeitsspeicher verschoben, um die Webseite anzuzeigen.
Swap bringt Stabilität für speicherintensive Operationen. Wenn es zu einem kurzen Anstieg des Speicherverbrauchs kommt, hilft Swap dabei, den Anstieg zu absorbieren und das System am Laufen zu halten, anstatt in einem totalen Einfrieren zu enden.
Auswahl des richtigen Geräts zum Einrichten von Swap
Swap ist wichtig, aber der Ort und die Größe des zu konfigurierenden Swaps sind ebenso wichtig. Im Idealfall muss sich Swap auf einem schnellen Gerät befinden. Neben den Caches auf dem Prozessor ist RAM der zweitschnellste Arbeitsspeicher. DDR4 auf dem Pi hat eine Bandbreite von 4,4 GBps (Gigabyte pro Sekunde). Swap muss sich auf einem der anderen verfügbaren Speichergeräte befinden.
Wenn eine SD-Karte für das Betriebssystem verwendet wird, ist darauf standardmäßig ein kleiner Auslagerungsbereich konfiguriert. Sie können seine Größe mit dem Befehl überprüfen:
frei-m
99 MB ist kein signifikanter Swap-Betrag. Es füllt sich recht schnell. SD-Karten haben begrenzte Schreibzyklen, da sie Flash-Speicher verwenden und übermäßiges Austauschen ihre Lebensdauer verkürzen könnte. Außerdem haben sie eine geringe Bandbreite von etwa 50 MBit/s mit einer viel geringeren Lese-/Schreibleistung für 4k-Dateien, was für das Austauschen kleinerer Dateien unerlässlich ist.
Festplatten haben sich drehende Scheiben in ihnen. Obwohl sie zuverlässig sind, haben sie längere Suchzeiten und sind nicht zum Tauschen geeignet.
Ein preiswerte SSD für das Betriebssystem ist eine einigermaßen bessere Wahl. Die Wear-Leveling-Algorithmen reorganisieren die Daten von abgenutzten Flash-Zellen und verlängern deren Lebensdauer. Auf einem Pi ist die SSD-Bandbreite ungefähr 150 MBit/s und hat eine viel bessere 4k-Dateileistung im Vergleich zu SD-Karten. Die Suchgeschwindigkeit ist auch gut. Aber die Verwendung derselben Festplatte für Swap- und Betriebssystemengpässe bei gleichzeitigem Betrieb. Da Swap intensive Schreibvorgänge durchführt, kann die Festplatte das TBW (gesamt geschriebene Bytes) früher als erwartet erreichen, insbesondere bei SSDs mit geringer Kapazität.
Idealerweise benötigt der Pi sein Betriebssystem und seinen Swap auf verschiedenen Laufwerken, eine Betriebssystemfestplatte und eine dedizierte SSD für den Swap. Dies würde Langlebigkeit für die Betriebssystemfestplatte und Geschwindigkeit für den Austausch geben. Außerdem steht die Bandbreite für beide gleichzeitig zur Verfügung, da es sich um unterschiedliche Geräte handelt.
So konfigurieren Sie Swap auf Raspberry Pi-Betriebssystemen
Wie Sie dies am besten konfigurieren, hängt davon ab, welches Betriebssystem Ihr Gerät verwendet.
Desktop-Betriebssystem (Raspberry Pi OS, Ubuntu Desktop und Ubuntu Mate)
Verbinden Sie die als Swap zu verwendende SSD mit a USB 3.0-auf-SATA-III-Adapter und den Pi starten. Der hier gezeigte Prozess ist auf dem Raspberry Pi OS implementiert und sollte auf den anderen Betriebssystemen genauso gut funktionieren. Im Falle Ihr Raspberry Pi OS muss aktualisiert werden, Tu es.
Installieren Sie das erforderliche Tool zum Verwalten von Datenträgern über die GUI
sudo apt Installieren gnome-disk-utility
Offen Festplatten aus Start > Zubehör.
Sie können auch diesen Befehl im Terminal verwenden, um das Tool zu öffnen:
Gnome-Festplatten
Formatieren Sie die SSD über das Menü.
Erstellen Sie eine Partition mit dem Steuerelement mit + Symbol
Die gesamte Partition kann zum Austauschen zugewiesen werden, aber maximal das Doppelte des Arbeitsspeichers würde ausreichen.
Benennen Sie das Volume und wählen Sie es aus Sonstiges für die Partitionstyp.
Auswählen Linux-Swap-Partition und erschaffe es.
Sie können es sofort montieren, indem Sie auf die Steuerschaltfläche mit klicken Spielen Symbol. Es wird während dieser Sitzung gemountet, bleibt aber bei Neustarts nicht hängen. Es muss so eingestellt sein, dass es automatisch bereitgestellt wird. Drücke den Gang steuern und auswählen Mount-Optionen bearbeiten.
Umschalten Standardeinstellungen für Benutzersitzungen und klicken OK. Authenticate and Disks fügt einen Eintrag zu /etc/fstab hinzu, um ihn bei jedem Start zu mounten.
Starten Sie den Pi neu, öffnen Sie das Terminal und überprüfen Sie die neue Swap-Größe:
frei-m
Zusätzliche Einstellung nur für Raspberry Pi OS
Da der Swap nun auf einer SSD konfiguriert ist, wird der alte Swap nicht benötigt. Sie können es deaktivieren, indem Sie Folgendes bearbeiten:
sudo nano /etc/dphys-swapfile
Setzen Sie diesen Parameter auf Null:
CONF_SWAPSIZE=0
Server-Betriebssystem (Ubuntu, Raspberry Pi-Betriebssystem)
Dieser Vorgang erfolgt über die CLI. Zur Vereinfachung können Sie die Swap-Partition mit dem Disks-Tool auf einem anderen Computer vorbereiten, dann die SSD an den Pi anschließen und den Server booten. Verbinden Sie sich per SSH mit dem Pi fortfahren.
Suchen Sie die Swap-Partition:
lsblk
sda1 es ist. Suchen Sie die UUID dieses Geräts: sda1
schwarz
Kopiere das UUID (einzigartig für Sie) und bearbeiten Sie die fstab-Datei, um sie bei jedem Start automatisch zu mounten:
sudo nano /etc/fstab
Fügen Sie diese Zeile hinzu:
UUID=”IHRE UUID” keine Swap sw 0 0
Speichern, neu starten und die Swap-Größe überprüfen:
frei-m
Optimierung der Nutzung des virtuellen Speichers für einen absturzsicheren Betrieb
Der konfigurierte Swap muss sinnvoll genutzt werden. Dies geschieht durch die Einrichtung eines Parameters namens Swappiness. So finden Sie den aktuellen Wert:
cat proc/sys/vm/swappiness
Der standardmäßig auf 60 gesetzte Wert definiert, wie aggressiv der Kernel Inhalte aus dem RAM auslagert. Er kann zwischen 1 und 100 eingestellt werden. Der geeignete Wert hängt von Ihrem spezifischen Bedarf ab. Wenn Sie sehen, dass dem Pi ständig der RAM ausgeht, setzen Sie ihn auf 100. Wenn nicht, stellen Sie ihn auf einen niedrigeren Wert ein. Bearbeiten Sie diese Datei, um sie einzustellen:
sudo nano /etc/sysctl.conf
Fügen Sie diese Zeile am Ende hinzu:
vm.swappiness=100
Vorbehalte in Bezug auf Verarbeitungs-Overhead und SSD-TBW
Der Betrieb von Swap erfordert Rechenleistung, normalerweise widmet sich einer der vier Kerne auf dem Pi dem Swap, wenn der RAM absolut voll ist.
Der allgemeine Ratschlag lautet, keine SSDs zum Austauschen zu verwenden. Dies gilt für den Fall, dass sich das Betriebssystem (zusammen mit den Benutzerdaten) und der Austausch auf derselben Festplatte befinden. Es gilt in diesem Fall nicht, wenn der Swap wie hier beschrieben eingerichtet wird. Obwohl die verwendete SSD letztendlich ihre TBW überschreitet und ausfällt, kann sie einfach durch eine neue ersetzt werden, da bei diesem Vorgang keine wichtigen Daten darauf gespeichert werden.
Tauschen Sie den Vorteil für Ihren Pi aus
Das Konfigurieren von Swap Right ist eine großartige Möglichkeit, den Pi absturzsicher zu machen. Die Stabilität beruht auf der Tatsache, dass der insgesamt verfügbare Speicher ein bedeutenderer Faktor ist als die Geschwindigkeit des Speichers während OOM. Der Pi friert nicht ein und sobald die Spike-Nutzung sinkt, reagiert er wieder schneller.
Raspberry Pi ist ein winziger Computer mit großer Flexibilität. Es kann für verschiedene Zwecke mit verschiedenen leichtgewichtigen Betriebssystemen verwendet werden. Pi 4 eignet sich gut als Ersatz für normale Computer und auch als eingebettetes Gerät für den industriellen Einsatz, das rund um die Uhr laufen kann.