Erinnerung

Optimieren der Linux-Speichernutzung

Optimieren der Linux-Speichernutzung
In Teil 1 dieser Serie haben wir uns den Swap Space genauer angesehen und Teil 2 befasste sich mit Tools und Befehlen zur Verwaltung des Speichers. Nun werden wir verschiedene Parameter und Strategien diskutieren, um den Speicher und seine Nutzung im Allgemeinen zu optimieren. Dies umfasst die Speichermenge, die Beschleunigung des Zugriffs und die interne Nutzungsstrategie.

Speicherkapazität

Wie bereits im ersten Teil besprochen, wird der gesamte Speicher als virtueller Speicher bezeichnet und besteht sowohl aus physischem Speicher als auch aus Swap-Speicher. Die Verfügbarkeit des physischen Speichers hängt von der Hardware ab, die in die Maschine eingebaut ist, sowie davon, wie viel Speicher der Prozessor tatsächlich adressieren kann. Als Beispiel haben 32-Bit-Betriebssysteme ein Limit von nur 4 GB Speicher (2^32bit), während Betriebssysteme, die auf 64bit basieren, theoretisch bis zu 16 EB (2^64bit) zulassen.

Genauer gesagt ist die Beschränkung das Motherboard mit dem Prozessor selbst, die Speichermodule, die von diesem Motherboard unterstützt werden, und die spezifischen Speichermodule, die in die Speichersteckplätze auf dem Motherboard gesteckt werden. Eine Möglichkeit, den verfügbaren Speicher des Systems zu maximieren, besteht darin, ähnliche Speichermodule mit der größtmöglichen Größe zu verwenden. Die zweite Möglichkeit besteht darin, Swap-Speicher zu verwenden, wie bereits in Teil 1 erklärt explained.

Speicherzugriff

Als nächstes kommt eine Verbesserung der Zugriffsgeschwindigkeit des Speichers in Betracht. Die physikalische Grenze wird zunächst durch das Speichermodul selbst gegeben. Sie können die physikalischen Grenzen der Hardware nicht unterschreiten. Zweitens eine Ramdisk, und drittens kann die Verwendung von zRAM den Speicherzugriff beschleunigen. Wir werden diese beiden Technologien genauer besprechen.

Erstellen einer Ramdisk

Eine Ramdisk ist ein Speicherblock, den das Betriebssystem wie ein physisches Gerät zum Speichern von Daten behandelt – eine Festplatte, die vollständig im Speicher gehalten wird. Dieses temporäre Gerät existiert, sobald das System startet und die Ramdisk aktiviert und das System entweder die Ramdisk deaktiviert oder herunterfährt. Denken Sie daran, dass Daten, die Sie auf einer solchen Ramdisk speichern, nach dem Herunterfahren des Computers verloren gehen.

Sie können eine dynamische Ramdisk über das tmpfs-Dateisystem und über das ramfs-Dateisystem erstellen. Beide Technologien unterscheiden sich deutlich voneinander. Erstens bedeutet dynamisch, dass der Speicher für die Ramdisk basierend auf ihrer Nutzung zugewiesen wird (gilt für beide Methoden). Solange Sie keine Daten darauf speichern, ist die Größe der Ramdisk 0.

Das Erstellen einer dynamischen Ramdisk über tmpfs ist wie folgt:

# mkdir /media/ramdisk
# mount -t tmpfs keine /media/ramdisk

Das Erstellen einer dynamischen Ramdisk über ramfs ist wie folgt:

# mkdir /media/ramdisk
# mount -t ramfs ramfs /media/ramdisk

Zweitens ist die Größe der Ramdisk bei Verwendung von tmpfs und sofern nicht ausdrücklich angegeben, auf 50% des physischen Speichers begrenzt limited. Im Gegensatz dazu hat eine auf Ramfs basierende Ramdisk keine solche Einschränkung.

Das Erstellen einer dynamischen Ramdisk über tmpfs mit einer relativen Größe von 20 % des physischen Speichers ist wie folgt:

# mkdir /media/ramdisk
# mount -t tmpfs -o size=20% keine /media/ramdisk

Das Erstellen einer dynamischen Ramdisk über tmpfs mit einer festen Größe von 200 MB physischem Speicher ist wie folgt:

# mkdir /media/ramdisk
# mount -t tmpfs -o size=200M keine /media/ramdisk

Drittens handhaben beide Methoden das Tauschen auf unterschiedliche Weise. Falls das System aufgrund von tmpfs das Speicherlimit einer Ramdisk erreicht, werden Daten von der Ramdisk ausgelagert. Dies vereitelt die Idee des schnellen Zugriffs. Auf der anderen Seite priorisiert das Betriebssystem sowohl den Inhalt als auch die angeforderten Speicherseiten einer Ramdisk basierend auf ramfs, behält diese im Speicher und lagert verbleibende Speicherseiten auf die Festplatte aus.

In den obigen Beispielen haben wir verwendet /media/ramdisk als Einhängepunkt. In Bezug auf reguläre Daten ist der einzige Teil des Linux-Dateisystems, der für die Verwendung auf einer Ramdisk empfohlen wird, /tmp. Dieses Verzeichnis speichert nur temporäre Daten, die nicht bestehen bleiben. Das Erstellen einer permanenten Ramdisk, die das Dateisystem /tmp speichert, erfordert einen zusätzlichen Eintrag in der Datei /etc/fstab wie folgt (basierend auf Ramfs):

ramfs   /tmp     ramfs   Standardwerte 0  0

Beim nächsten Booten Ihres Linux-Systems wird die Ramdisk automatisch aktiviert.

Verwendung von zRAM

zRAM bedeutet Virtual Swap Compressed in RAM und erstellt ein komprimiertes Blockgerät direkt im physischen Speicher. zRAM wird aktiv (benutzt), sobald keine physischen Speicherseiten mehr auf dem System verfügbar sind. Dann versucht der Linux-Kernel, Seiten als komprimierte Daten auf dem zRAM-Gerät zu speichern.

Derzeit ist kein Paket für Debian GNU/Linux verfügbar, aber Ubuntu. Es heißt zram-config. Installieren Sie das Paket und richten Sie ein zRAM-Gerät ein, indem Sie einfach den entsprechenden systemd-Dienst wie folgt starten:

# systemctrl starte zram-config

Wie durch die Ausgabe von gegeben swapon -s, das Gerät ist als zusätzliche Swap-Partition aktiv. Für zRAM wird automatisch eine Größe von 50 % des Speichers zugewiesen (siehe Abbildung 1). Derzeit gibt es keine Möglichkeit, einen anderen Wert für die Zuweisung von zRAM anzugeben.

Um weitere Details über die komprimierte Swap-Partition anzuzeigen, verwenden Sie den Befehl zramctl. Abbildung 2 zeigt den Gerätenamen, den Komprimierungsalgorithmus (LZO), die Größe der Swap-Partition, die Größe der Daten auf der Platte und deren komprimierte Größe sowie die Anzahl der Komprimierungsstreams (Standardwert: 1).

Nutzungsstrategie

Als nächstes konzentrieren wir uns auf die Speichernutzungsstrategie. Es gibt einige Parameter, um das Verhalten der Speichernutzung und -verteilung zu beeinflussen. Dies beinhaltet die Größe der Speicherseiten - auf 64-Bit-Systemen sind es 4 M. Als nächstes spielt die Parametervertauschung eine Rolle. Wie bereits in Teil 1 erklärt, steuert dieser Parameter die relative Gewichtung, die dem Auslagern des Laufzeitspeichers beigemessen wird, im Gegensatz zum Löschen von Speicherseiten aus dem Systemseiten-Cache. Außerdem sollten wir sowohl das Caching als auch die Ausrichtung der Speicherseiten nicht vergessen.

Verwenden Sie Programme, die weniger Speicher benötigen

Nicht zuletzt hängt die Speichernutzung von den Programmen selbst ab. Die meisten von ihnen sind mit der Standard-C-Bibliothek (Standard-LibC) verknüpft. Als Entwickler sollten Sie zur Minimierung Ihres Binärcodes eine Alternative und eine viel kleinere C-Bibliothek verwenden. Zum Beispiel gibt es dietlibc [1], uClibc [2] und musl lib C [3]. Die Entwickler-Website von musl lib C enthält einen ausführlichen Vergleich [4] zu diesen Bibliotheken im Hinblick auf das kleinstmögliche statische C-Programm, einen Funktionsvergleich sowie die entsprechenden Build-Umgebungen und unterstützten Hardware-Architekturen.

Als Benutzer müssen Sie Ihre Programme möglicherweise nicht kompilieren. Ziehen Sie in Erwägung, nach kleineren Programmen und anderen Frameworks zu suchen, die weniger Ressourcen benötigen. Als Beispiel können Sie die XFCE Desktop Environment anstelle von KDE oder GNOME verwendenNO.

Fazit

Es gibt einige Optionen, um die Speichernutzung zum Besseren zu ändern. Das reicht von Swap über Komprimierung auf Basis von zRAM bis hin zum Einrichten einer Ramdisk oder Auswahl eines anderen Frameworks.

Links und Referenzen

Linux-Speicherverwaltungsserie

Danksagung

Der Autor bedankt sich bei Axel Beckert und Gerold Rupprecht für die Unterstützung bei der Erstellung dieses Artikels.

SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...