Prüfen von Speicherlimits mit sysctl vm.overcommit
In diesem Schritt werden wir untersuchen, wie Linux die Speicherzuweisung verwaltet, wobei wir uns speziell auf die Einstellung vm.overcommit_memory
mithilfe des Befehls sysctl
konzentrieren.
Der Befehl sysctl
wird verwendet, um Kernel-Parameter zur Laufzeit zu ändern. Diese Parameter werden oft im Verzeichnis /proc/sys/
gespeichert. Der Parameter vm.overcommit_memory
steuert, wie der Kernel Anfragen für Speicher behandelt, der die verfügbare physische RAM-Kapazität überschreitet.
Es gibt drei mögliche Werte für vm.overcommit_memory
:
0
: Heuristisches Overcommitting. Der Kernel versucht zu schätzen, ob eine Speicherzuweisungsanfrage möglich ist. Dies ist die Standardeinstellung.
1
: Immer Overcommitting. Der Kernel gewährt immer Speicherzuweisungsanfragen, auch wenn sie die verfügbare Speicherkapazität überschreiten. Dies kann dazu führen, dass Prozesse später abgebrochen werden, wenn sie tatsächlich versuchen, den Speicher zu nutzen.
2
: Nie Overcommitting. Der Kernel gewährt keine Speicherzuweisungsanfragen, wenn sie die gesamte verfügbare Swap-Speicherkapazität plus einen konfigurierbaren Prozentsatz des physischen RAM überschreiten.
Lassen Sie uns den aktuellen Wert von vm.overcommit_memory
prüfen. Öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:
sysctl vm.overcommit_memory
Drücken Sie die Eingabetaste.
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
vm.overcommit_memory = 0
Diese Ausgabe zeigt, dass die aktuelle Einstellung für vm.overcommit_memory
0
ist, was bedeutet, dass der Kernel heuristisches Overcommitting verwendet.
Das Verständnis dieser Einstellung ist wichtig für die Verwaltung von Systemressourcen und die Verhinderung von Out-of-Memory-Fehlern in bestimmten Anwendungen.
Jetzt versuchen wir, diesen Wert vorübergehend zu ändern. Wir können dies tun, indem wir sudo sysctl -w
verwenden. Die Option -w
ermöglicht es Ihnen, einen neuen Wert für einen Kernel-Parameter zu setzen.
Geben Sie den folgenden Befehl ein, um vm.overcommit_memory
auf 1
zu setzen:
sudo sysctl -w vm.overcommit_memory=1
Drücken Sie die Eingabetaste.
Sie sollten eine Ausgabe sehen, die die Änderung bestätigt:
vm.overcommit_memory = 1
Jetzt prüfen wir den Wert erneut, um sicherzustellen, dass er geändert wurde:
sysctl vm.overcommit_memory
Drücken Sie die Eingabetaste.
Die Ausgabe sollte jetzt zeigen:
vm.overcommit_memory = 1
Beachten Sie, dass Änderungen, die mit sysctl -w
vorgenommen werden, vorübergehend sind und beim Neustart des Systems zurückgesetzt werden. Wir werden in einem späteren Schritt untersuchen, wie Sie diese Änderungen dauerhaft machen können.
Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.