Linux Kernel

VM verstehen.Austausch

VM verstehen.Austausch
Der Linux-Kernel ist eine ziemlich komplexe Software mit einer langen Liste von Komponenten wie Modulen, Schnittstellen und Konfigurationsdateien [1]. Diese Komponenten können mit bestimmten Werten konfiguriert werden, um ein gewünschtes Verhalten oder eine gewünschte Wirkungsweise der Komponente zu erreichen [2,3,4]. Anschließend beeinflusst dieses Setup direkt sowohl das Verhalten als auch die Leistung Ihres Linux-Systems als Ganzes.

Die aktuellen Werte des Linux-Kernels und seiner Komponenten werden über eine spezielle Schnittstelle zugänglich gemacht – das Verzeichnis /proc [5]. Dies ist ein virtuelles Dateisystem, in dem die einzelnen Dateien in Echtzeit mit Werten gefüllt werden. Die Werte stellen den aktuellen Zustand dar, in dem sich der Linux-Kernel befindet. Auf die einzelnen Dateien im Verzeichnis /proc können Sie mit dem Befehl cat wie folgt zugreifen:

$ cat /proc/sys/net/core/somaxconn
128
$

Einer dieser Kernel-Parameter heißt vm.Austausch. Es „steuert das relative Gewicht, das dem Auslagern des Laufzeitspeichers beigemessen wird, im Gegensatz zum Löschen von Speicherseiten aus dem Systemseiten-Cache“ [6]. Beginnend mit Linux-Kernel-Releases 2.6 dieser Wert wurde eingeführt. Es wird in der Datei /proc/sys/vm/swappiness gespeichert .

Verwenden von Swap

Die Verwendung von Swap [6] war in den frühen 1990er Jahren ein wesentlicher Bestandteil der Verwendung kleinerer UNIX-Rechner. Es ist immer noch nützlich (wie ein Ersatzreifen in Ihrem Fahrzeug zu haben), wenn unangenehme Speicherlecks Ihre Arbeit stören. Die Maschine wird langsamer, kann aber in den meisten Fällen immer noch verwendet werden, um die zugewiesene Aufgabe zu erledigen. Entwickler freier Software haben große Schritte unternommen, um Programmfehler zu reduzieren und zu eliminieren. Bevor Sie die Kernelparameter ändern, sollten Sie daher zuerst ein Update auf eine neuere Version Ihrer Anwendung und zugehöriger Bibliotheken in Betracht ziehen.

Wenn Sie zahlreiche Aufgaben ausführen, werden die inaktiven Aufgaben auf die Festplatte ausgelagert, um den Speicher mit Ihren aktiven Aufgaben besser zu nutzen. Videobearbeitung und andere speicherintensive Anwendungen haben oft die empfohlene Menge an Arbeitsspeicher und Festplattenspeicher. Wenn Sie einen älteren Computer haben, für den kein Speicherupgrade möglich ist, kann die Bereitstellung von mehr Swap eine gute vorübergehende Lösung für Sie sein (siehe [6], um mehr darüber zu erfahren).

Das Auslagern kann auf einer separaten Partition oder in einer Auslagerungsdatei erfolgen. Die Partition ist schneller und wird von vielen Datenbankanwendungen bevorzugt. Der Dateiansatz ist flexibler (siehe das Paket dphys-swapfile in Debian GNU/Linux [7]). Wenn mehr als ein physisches Gerät zum Austauschen vorhanden ist, kann der Linux-Kernel das Gerät auswählen, das am schnellsten verfügbar ist (geringere Latenz).

vm.Austausch

Der Standardwert von vm.swappiness ist 60 und repräsentiert den Prozentsatz des freien Speichers vor der Aktivierung von swap. Je niedriger der Wert, desto weniger Swapping wird verwendet und desto mehr Speicherseiten werden im physischen Speicher gehalten.

Der Wert von 60 ist ein Kompromiss, der für moderne Desktop-Systeme gut funktioniert. Ein kleinerer Wert ist stattdessen eine empfohlene Option für ein Serversystem. Wie das Red Hat Performance Tuning-Handbuch hervorhebt [8], wird ein kleinerer Swappiness-Wert für Datenbank-Workloads empfohlen. Für Oracle-Datenbanken empfiehlt Red Hat beispielsweise einen Swappiness-Wert von 10. Im Gegensatz dazu wird für MariaDB-Datenbanken empfohlen, swappiness auf einen Wert von 1 zu setzen [9].

Die Änderung des Wertes beeinflusst direkt die Leistung des Linux-Systems. Diese Werte sind definiert:

* 0: Swap ist deaktiviert
* 1: minimaler Austausch, ohne ihn vollständig zu deaktivieren
* 10: empfohlener Wert, um die Leistung zu verbessern, wenn genügend Speicher in einem System vorhanden ist
* 100: aggressives Tauschen

Wie oben gezeigt hilft der cat-Befehl beim Lesen des Wertes. Außerdem liefert der sysctl-Befehl das gleiche Ergebnis:

# sysctl-VM.Austausch
vm.Wechselhaftigkeit = 60
#

Denken Sie daran, dass der Befehl sysctl nur für Administratoren verfügbar ist. Um den Wert vorübergehend festzulegen, legen Sie den Wert im /proc-Dateisystem wie folgt fest:

# echo 10 > /proc/sys/vm/swappiness

Alternativ können Sie den sysctl-Befehl wie folgt verwenden:

# sysctl -w VM.Wechselhaftigkeit=10

Um den Wert dauerhaft zu setzen, öffnen Sie die Datei /etc/sysctl.conf als Administrator und fügen Sie die folgende Zeile hinzu:

vm.Wechselhaftigkeit = 10

Fazit

Immer mehr Linux-Benutzer verwenden virtuelle Maschinen. Jeder hat seinen eigenen Kernel zusätzlich zum Hypervisor, der tatsächlich die Hardware steuert. Für virtuelle Maschinen wurden virtuelle Festplatten erstellt, sodass das Ändern der Einstellung innerhalb der virtuellen Maschine zu unbestimmten Ergebnissen führt. Experimentieren Sie zuerst damit, die Werte des Hypervisor-Kernels zu ändern, da er tatsächlich die Hardware in Ihrem Computer steuert.

Bei älteren Maschinen, die nicht mehr aufgerüstet werden können (die bereits über den maximal unterstützten Speicher verfügen), können Sie erwägen, eine kleine Solid State Disk in die Maschine einzubauen, um sie als zusätzliches Auslagerungsgerät zu verwenden. Dies wird offensichtlich zu einem Verbrauchsmaterial, da Speicherzellen aufgrund vieler Schreibvorgänge ausfallen, kann jedoch die Lebensdauer einer Maschine für sehr geringe Kosten um ein Jahr oder mehr verlängern. Die niedrigere Latenz und die schnellen Lesevorgänge bieten eine viel bessere Leistung als das Auslagern auf eine normale Festplatte, was zu Zwischenergebnissen für den RAM führt. Dies sollte es Ihnen ermöglichen, etwas niedrigere vm zu verwenden.Austauschbarkeitswerte für optimale Leistung. Sie müssen experimentieren. SSD-Geräte ändern sich schnell.

Wenn Sie mehr als ein Swap-Gerät haben, sollten Sie es in Erwägung ziehen, es zu einem RAID-Gerät zu machen, um Daten über die verfügbaren Geräte zu verteilen.

Sie können Änderungen an der Swappiness vornehmen, ohne den Computer neu starten zu müssen, ein großer Vorteil gegenüber anderen Betriebssystemen.

Versuchen Sie, nur die Dienstleistungen aufzunehmen, die Sie für Ihr Unternehmen benötigen. Dies reduziert den Speicherbedarf, verbessert die Leistung und hält alles einfacher.

Eine letzte Anmerkung: Sie werden Ihre Swap-Geräte belastet. Sie werden die Temperaturen von ihnen überwachen wollen. Ein überhitztes System senkt seine CPU-Frequenz und verlangsamt sich.

Danksagung

Besonderer Dank gilt Gerold Rupprecht und Zoleka Hatitongwe für ihre kritischen Anmerkungen und Kommentare bei der Vorbereitung dieses Artikels.

Links und Referenzen

* [1] Linux-Kernel-Tutorial für Anfänger, https://linuxhint.com/linux-kernel-tutorial-anfänger/

* [2] Derek Molloy: Schreiben eines Linux-Kernel-Moduls - Teil 1: Einführung, http://derekmolloy.ie/writing-a-linux-kernel-module-part-1-introduction/

* [3] Derek Molloy: Schreiben eines Linux-Kernel-Moduls - Teil 2: Ein Zeichengerät, http://derekmolloy.ie/schreiben-ein-linux-kernel-modul-teil-2-ein-zeichen-gerät/

* [4] Derek Molloy: Schreiben eines Linux-Kernel-Moduls - Teil 3: Schaltflächen und LEDs, http://derekmolloy.dh/kernel-gpio-programming-buttons-and-leds/

* [5] Frank Hofmann: Befehle zur Verwaltung des Linux-Speichers, https://linuxhint.com/commands-to-manage-linux-memory/

* [6] Frank Hofmann: Linux-Kernel-Speicherverwaltung: Swap Space, https://linuxhint.com/linux-memory-management-swap-space/

* [7] dphys-swapfile-Paket für Debian GNU/Linux, https://packages.debian.org/stretch/dphys-Swapfile

* [8] Red Hat Performance Tuning Guide, https://access.roter Hut.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-memory-tunables

* [9] MariaDB konfigurieren, https://mariadb.com/kb/en/library/configuring-swappiness/

Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...