VM verstehen.Tupfer

VM verstehen.Tupfer
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 spezifischen Werten konfiguriert werden, um ein gewünschtes Verhalten oder Betriebsart 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 mit einer speziellen Schnittstelle zugänglich gemacht - dem Verzeichnis /proc [5]. Dies ist ein virtuelles Dateisystem, in dem die einzelnen Dateien in Echtzeit mit Werten gefüllt sind. Die Werte repräsentieren den tatsächlichen Zustand, in dem sich der Linux -Kernel befindet. Sie können auf die einzelnen Dateien im Verzeichnis /proc über den Befehl cat zugreifen, wie folgt:

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

Einer dieser Kernelparameter heißt VM.Tupfer. Es steuert „das relative Gewicht, das für den Austausch des Laufzeitspeichers angegeben ist, anstatt Speicherseiten aus dem Systemseiten -Cache zu fallen“ [6]. Beginnend mit Linux -Kernel -Veröffentlichungen 2.6 Dieser Wert wurde eingeführt. Es wird in der Datei/Proc/Sys/VM/Swappiness gespeichert .

Mit Swap

Die Verwendung von Swap [6] war ein wesentlicher Bestandteil der Verwendung kleinerer Unix -Maschinen in den frühen neunziger Jahren. Es ist immer noch nützlich (wie ein Ersatzreifen in Ihrem Fahrzeug), wenn böse Speicher Ihre Arbeiten beeinträchtigen. Die Maschine wird verlangsamt, aber in den meisten Fällen wird immer noch verwendet, um ihre zugewiesene Aufgabe zu beenden. Kostenlose Softwareentwickler haben großartige Fortschritte gemacht, um Programmfehler zu reduzieren und zu beseitigen, bevor die Kernelparameter geändert werden können.

Wenn Sie zahlreiche Aufgaben ausführen, werden die inaktiven Aufgaben auf die Festplatte ausgetauscht, wodurch der Speicher mit Ihren aktiven Aufgaben besser verwendet wird. Videobearbeitung und andere große Speicherkonsumanwendungen haben häufig empfohlene Mengen an Speicher- und Festplattenraum. Wenn Sie eine ältere Maschine haben, die kein Speicher -Upgrade durchführen kann, ist möglicherweise eine gute vorübergehende Lösung für Sie zu sein (siehe [6], wie Sie mehr darüber erfahren können).

Der Tausch kann auf einer separaten Partition oder in einer Swap -Datei erfolgen. Die Partition ist schneller und wird von vielen Datenbankanwendungen bevorzugt. Der Dateiansatz ist flexibler (siehe DPHYS-SWAPFILE-Paket in Debian GNU/Linux [7]). Wenn Sie mehr als ein physisches Gerät zum Tausch mit einem Linux -Kernel haben, können Sie das am schnellsten verfügbare Gerät auswählen (niedrigere Latenz).

VM.Tupfer

Der Standardwert von VM.Der Swappiness beträgt 60 und repräsentiert den Prozentsatz des freien Speichers, bevor Sie den Swap aktivieren. Je niedriger der Wert ist, desto weniger tauschen Sie sich aus und desto mehr Speicherseiten werden im physischen Speicher gehalten.

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

Das Ändern des Wertes beeinflusst die Leistung des Linux -Systems direkt. Diese Werte werden definiert:

* 0: Tausch ist deaktiviert
* 1: Mindestbetragsmenge, ohne ihn vollständig zu deaktivieren
* 10: Empfohlener Wert zur Verbesserung der Leistung, wenn in einem System ausreichend Speicher vorhanden ist
* 100: aggressives Austausch

Wie oben gezeigt, hilft der Befehl cat, den Wert zu lesen. Der SYSCTL -Befehl gibt Ihnen auch das gleiche Ergebnis:

# sysctl vm.Tupfer
VM.Swappiness = 60
#

Beachten Sie, dass der SYSCTL -Befehl nur einem administrativen Benutzer zur Verfügung steht. So legen Sie den Wert vorübergehend den Wert in das Dateisystem /proc wie folgt fest:

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

Alternative können Sie den Befehl sysctl wie folgt verwenden:

# sysctl -W VM.Swappiness = 10

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

VM.Swappiness = 10

Abschluss

Immer mehr Linux -Benutzer führen virtuelle Maschinen aus. Jeder hat einen eigenen Kernel zusätzlich zum Hypervisor, der die Hardware tatsächlich steuert. Virtuelle Maschinen haben virtuelle Festplatten für sie erstellt. Die Änderung der Einstellung in der virtuellen Maschine hat daher unbestimmte Ergebnisse. Experimentieren Sie zunächst mit der Änderung der Werte des Hypervisor -Kernels, da es die Hardware in Ihrem Computer tatsächlich steuert.

Für ältere Maschinen, die nicht mehr aktualisiert werden können (bereits einen maximal unterstützten Speicher haben), können Sie in Betracht ziehen, eine kleine Festplatte in die Maschine zu legen, um sie als zusätzliches Swap -Gerät zu verwenden. Dies wird offensichtlich ein Verbrauchsmaterial, da Gedächtniszellen aus vielen Schreibvorgängen scheitern, aber die Lebensdauer einer Maschine für ein Jahr oder länger für sehr niedrige Kosten verlängern kann. Die niedrigere Latenz und schnelle Lesevorgänge bieten eine viel bessere Leistung als ein Austausch auf eine gewöhnliche Festplatte, was RAM mittelschwere Ergebnisse liefert. Auf diese Weise sollten Sie eine etwas niedrigere VM verwenden.Swappinesswerte für eine optimale Leistung. Sie müssen experimentieren. SSD -Geräte ändern sich schnell.

Wenn Sie mehr als ein Swap -Gerät haben, sollten Sie es zu einem RAID -Gerät für Stripe -Daten auf den verfügbaren Geräten machen.

Sie können Änderungen im Swappiness vornehmen, ohne die Maschine neu zu starten, ein großer Vorteil gegenüber anderen Betriebssystemen.

Versuchen Sie, nur die Dienste einzubeziehen, die Sie für Ihr Unternehmen benötigen. Dies verringert die Speicheranforderungen, verbessert die Leistung und bleibt alles einfacher.

Ein letzter Hinweis: Sie werden Ihren Swap -Geräten Last hinzufügen. Sie möchten die Temperaturen überwachen. Ein überhitztes System senkt seine CPU -Frequenz und verlangsamt sich.

Anerkennung

Der Autor möchte Gerold Rupprecht und Zoleka Hatitongwe für ihre kritischen Bemerkungen und Kommentare bei der Vorbereitung dieses Artikels ein besonderes Dankeschön sagen.

Links und Referenzen

* [1] Linux -Kernel -Tutorial für Anfänger, https: // linuxHint.com/Linux-Kernel-Tutorial-Beinners/

* [2] Derek Molloy: Schreiben eines Linux -Kernel -Moduls - Teil 1: Einführung, http: // Derekmolloy.dh/write-a-linux-kernel-modul-part-1-Einführung/

* [3] Derek Molloy: Schreiben eines Linux -Kernel -Moduls - Teil 2: Ein Zeichengerät, http: // Derekmolloy.dh/write-a-linux-kernel-modul-part-2-a-character-device/

* [4] Derek Molloy: Schreiben eines Linux -Kernel -Moduls - Teil 3: Tasten und LEDs, http: // Derekmolloy.IE/Kernel-gpio-programmierende Buttons und LEDS/

* [5] Frank Hofmann: Befehle zur Verwaltung von Linux -Speicher, https: // linuxHint.com/Command-to-Manage-Linux-Memory/

* [6] Frank Hofmann: Linux -Kernel -Speichermanagement: Swap Space, https: // linuxHint.com/Linux-Memory-Management-Swap-Raum/

* [7] DPHYS-SWAPFILE-Paket für Debian GNU/Linux, https: // Pakete.Debian.Org/Stretch/DPhys-SwappFile

* [8] Red Hat Performance Tuning Guide, https: // zugreifen.roter Hut.com/documentation/en-us/red_hat_enterprise_linux/6/html/Performance_tuning_guide/s-Memory-TUNBABLEALE

* [9] Konfigurieren von Mariadb, https: // mariadb.com/kb/en/bibliothek/konfigurieren swappiness/