Provided by: manpages-de_4.27.0-1_all 

BEZEICHNUNG
/proc/sys/vm/ - virtuelles Speicher-Subsystem
BESCHREIBUNG
/proc/sys/vm/
Dieses Verzeichnis enthält Dateien für die Optimierung der Speicherverwaltung und die Verwaltung
der Puffer und Caches (Zwischenspeicher).
/proc/sys/vm/admin_reserve_kbytes (seit Linux 3.10)
Diese Datei definiert die Menge an freiem Speicher (in KiB) auf dem System, der für Benutzer mit
der Capability CAP_SYS_ADMIN reserviert werden sollte.
Die Vorgabe für diesen Wert ist der kleinere Wert aus [3% von freien Seiten, 8 MiB], ausgedrückt
in kiB. Der Vorgabewert ist dazu gedacht, unter dem standardmäßigen Überbuchungs »Rate«-Modus
(d.h. 0 in /proc/sys/vm/overcommit_memory) genug für die Anmeldung des Systemadministrators zum
Beenden eines Prozesses, falls notwendig, bereitzustellen.
Systeme, die im »Nichtmals Überbuchen«-Modus« (d.h. 2 in /proc/sys/vm/overcommit_memory) laufen,
sollten den Wert in dieser Datei vergrößern,um der vollen virtuelle Speichergröße Rechnung zu
tragen, die Programme zur Wiederherstellung benötigen (z.B. login(1), ssh(1) und top(1)).
Andernfalls ist der Systemadministrator möglicherweise nicht in der Lage, sich anzumelden, um das
System wiederherzustellen. Auf x86-64 ist beispielsweise 131072 (128 MiB reserviert) ein
geeigneter Wert.
Die Änderung des Wertes in dieser Datei tritt in Kraft, wann immer eine Anwendung Speicher
anfordert.
/proc/sys/vm/compact_memory (seit Linux 2.6.35)
Wenn 1 in diese Datei geschrieben wird, werden alle Zonen zusammengefasst, so dass der freie
Speicher wo möglich in durchlaufenden Blöcken verfügbar ist. Der Effekt dieser Aktion kann durch
Einsicht in /proc/buddyinfo geprüft werden.
Nur vorhanden, falls der Kernel mit CONFIG_COMPACTION konfiguriert wurde.
/proc/sys/vm/drop_caches (seit Linux 2.6.16)
Das Schreiben in diese Datei veranlasst den Kernel, saubere Zwischenspeicher, Dentries und Inodes
aus dem Speicher zu verwerfen, was dazu führt, dass Speicher frei wird. Dies kann für das Testen
der Speicherverwaltung und der Durchführung reproduzierbarer Dateisystembewertungen nützlich sein.
Da das Schreiben in diese Datei dazu führt, dass die Vorteile der Zwischenspeicherung verloren
gehen, kann es die Leistung des gesamten Systems vermindern.
Zur Freigabe des Seitenzwischenspeichers, verwenden Sie:
echo 1 > /proc/sys/vm/drop_caches
Zur Freigabe der Dentries und Inodes, verwenden Sie:
echo 2 > /proc/sys/vm/drop_caches
Zur Freigabe des Seitenzwischenspeichers, der Dentries und Inodes, verwenden Sie:
echo 3 > /proc/sys/vm/drop_caches
Da das Schreiben in diese Datei unschädlich ist und geänderte (schmutzige) Objekte nicht
freigegeben werden können, sollte der Benutzer vorher sync(8) aufrufen.
/proc/sys/vm/sysctl_hugetlb_shm_group (seit Linux 2.6.7)
Diese schreibbare Datei enthält die Gruppenkennung, der es erlaubt ist, Speicher mittels großer
Seiten zu belegen. Falls ein Prozess über eine Dateisystemgruppenkennung oder irgendeine
zusätzliche Gruppenkennung, die auf diese Gruppenkennung passt, verfügt, dann kann er große
Speicherseiten belegen, ohne die Capability CAP_IPC_LOCK zu halten; siehe memfd_create(2), mmap(2)
und shmget(2).
/proc/sys/vm/legacy_va_layout (seit Linux 2.6.9)
Wenn ungleich Null, deaktiviert dies das neue 32-Bit-Layout für das »Memory Mapping«, der Kernel
wird das alte (2.4) Layout für alle Prozesse anwenden.
/proc/sys/vm/memory_failure_early_kill (seit Linux 2.6.32)
Steuert, wie Prozesse beendet werden, wenn ein nicht korrigierter Speicherfehler (in der Regel ein
2-Bit-Fehler in einem Speichermodul), den der Kernel nicht bearbeiten kann, im Hintergrund durch
die Hardware erkannt wird. In einigen Fällen (wenn es von der Seite noch eine gültige Kopie auf
der Festplatte gibt), wird der Kernel den Fehler behandeln, ohne alle Anwendungen zu
beeinträchtigen. Aber wenn es keine weitere aktuelle Kopie der Daten gibt, wird er Prozesse
abbrechen, um die Verbreitung korrumpierter Daten zu unterbinden.
Die Datei hat einen der folgenden Werte:
1 Bricht alle Prozesse ab, in deren Speicher die beschädigte und nicht erneut ladbare Seite
gemappt ist, sobald die Beschädigung erkannt wird. Beachten Sie, dass dies nicht für einige
spezielle Seitentypen wie Kernel-intern zugewiesene Daten oder den
Auslagerungszwischenspeicher unterstützt wird, es funktioniert aber für die Mehrheit der
Anwenderseiten.
0 Die beschädigte Seite aus allen Prozesse ausmappen und einen Prozess nur töten, falls er
versucht, auf die Seite zuzugreifen.
Der Abbruch wird mittels eines SIGBUS-Signals erledigt, bei dem der si_code auf BUS_MCEERR_AO
gesetzt wird. Prozesse können darauf reagieren, wenn sie wollen; siehe sigaction(2) für weitere
Einzelheiten.
Diese Funktionalität ist nur auf Architekturen/Plattformen aktiv, die über eine ausgefeilte
Handhabung von »machine checks« verfügen und hängt von den Fähigkeiten der Hardware ab.
Anwendungen können die Einstellung memory_failure_early_kill individuell mit der
prctl(2)-Operation PR_MCE_KILL außer Kraft setzen.
Nur vorhanden, falls der Kernel mit CONFIG_MEMORY_FAILURE konfiguriert wurde.
/proc/sys/vm/memory_failure_recovery (seit Linux 2.6.32)
Aktiviert die Behebung von Speicherfehlern (wenn das von der Plattform unterstützt wird).
1 Fehlerbehebung versuchen.
0 Bei Speicherfehlern immer eine Kernel Panic auslösen.
Nur vorhanden, falls der Kernel mit CONFIG_MEMORY_FAILURE konfiguriert wurde.
/proc/sys/vm/oom_dump_tasks (seit Linux 2.6.25)
Ermöglicht einen systemweiten Speicherauszug der Prozesse (ohne Kernel-Threads), wenn der Kernel
bei Speicherknappheit Prozesse abbricht (OOM-Killer). Der Speicherauszug enthält die folgenden
Informationen für jeden Prozess (Thread, Prozess): Thread-Kennung, reale Benutzerkennung,
Thread-Gruppenkennung (Prozesskennung), Größe des virtuellen Speichers, Größe des Resident Set,
die CPU, auf der der Prozess laufen soll, die oom_adj-Bewertung (siehe die Beschreibung von
/proc/PID/oom_adj) und der Name des Befehls. Dies ist hilfreich, um festzustellen, warum der
OOM-Killer aufgerufen wurde und um die außer Kontrolle geratenen Prozesse zu identifizieren.
Ist der Wert in der Datei Null, wird diese Information unterdrückt. Auf sehr großen Systemen mit
Tausenden von Prozessen wird es kaum praktikabel sein, für alle Prozesse den Speicherstatus
auszugeben. Solche Systeme sollten nicht gezwungen werden, bei OOM-Situationen Leistungseinbußen
zu erleiden, wenn die Informationen nicht gewünscht werden.
Ist der Wert von Null verschieden, werden diese Informationen jedesmal ausgegeben, wenn der
OOM-Killer einen speicherhungrigen Prozess ins Jenseits schickt.
Der Standardwert ist 0.
/proc/sys/vm/oom_kill_allocating_task (seit Linux 2.6.24)
Dies aktiviert oder deaktiviert das Beenden des OOM-auslösenden Prozesses bei Speicherknappheit.
Ist der Wert null, wertet der OOM-Killer die gesamte Taskliste aus und wählt heuristisch einen
Prozess als Opfer aus. Normalerweise wählt er einen speicherhungrigen, außer Kontrolle geratenenen
Task aus, dessen Tod sehr viel Speicher freigibt.
Ist der Wert ungleich Null, tötet der OOM-Killer den Prozess, der die Speicherknappheit auslöste.
Dadurch wird eine möglicherweise aufwändige Analyse der Taskliste vermieden.
Falls /proc/sys/vm/panic_on_oom von null verschieden ist, hat das Vorrang vor dem Wert in
/proc/sys/vm/oom_kill_allocating_task, was auch immer darin steht.
Der Standardwert ist 0.
/proc/sys/vm/overcommit_kbytes (seit Linux 3.14)
Diese beschreibbare Datei stellt eine Alternative zu /proc/sys/vm/overcommit_ratio zu Steuerung
von CommitLimit bereit, wenn /proc/sys/vm/overcommit_memory den Wert 2 hat. Es ermöglicht die
Menge der Speicherüberbuchung als absoluten Wert (in kB) statt als Prozentwert, wie dies in
overcommit_ratio erfolgt, festzulegen. Dies ermöglicht granularere Steuerung des CommitLimit auf
Systemen mit extrem viel Speicher.
Nur entweder overcommit_kbytes oder overcommit_ratio kann einen Effekt haben. Falls
overcommit_kbytes einen von Null verschiedenen Wert enthält, dann wird dieser zur Berechnung von
CommitLimit verwandt, andernfalls wird overcommit_ratio verwandt. Wird in eine der beiden Dateien
geschrieben, dann wird der Wert in der anderen auf Null gesetzt.
/proc/sys/vm/overcommit_memory
Diese Datei legt den Abrechnungsmodus des Kernels für virtuellen Speicher fest. Die Werte sind:
0: heuristische Überbuchung (Standardverhalten)
1: immer überbuchen, niemals prüfen
2: immer prüfen, niemals überbuchen
In Modus 0 werden Aufrufe von mmap(2) mit MAP_NORESERVE nicht überprüft. Damit ist die
Standardprüfung sehr schwach und setzt den Prozess dem Risiko aus, zum Opfer des OOM-Killers zu
werden.
In Modus 1 gibt der Kernel immer vor, noch über Speicher zu verfügen, bis der Speicher schließlich
wirklich erschöpft ist. Ein Einsatzzweck stellt das wissenschaftliche Rechnen dar, bei denen
große, kaum besetzte Felder eingesetzt werden. Vor Linux 2.6.0 impliziert jeder von Null
verschiedene Wert den Modus 1.
In Modus 2 (verfügbar seit Linux 2.6) wird der reservierbare gesamte virtuelle Adressraum
(CommitLimit in /proc/meminfo) wie folgt berechnet:
CommitLimit = (total_RAM - total_huge_TLB) *
overcommit_ratio / 100 + total_swap
wobei:
• total_RAM ist der gesamte RAM des Systems
• total_huge_TLB ist die für große Speicherseiten beiseite gestellte Speichermenge
• overcommit_ratio ist der Wert aus /proc/sys/vm/overcommit_ratio
• total_swap ist die Menge des Auslagerungsbereichs
Beispielsweise ergibt diese Formel auf einem System mit 16 GB an physischem RAM, 16 GB an
Auslagerungsspeicher, keinen für große Speicherseiten gewidmeten Bereich und einem
overcommit_ratio von 50 ein CommitLimit von 24 GB.
Falls der Wert in /proc/sys/vm/overcommit_kbytes von Null verschieden ist, wird CommitLimit
stattdessen seit Linux 3.14 wie folgt berechnet:
CommitLimit = overcommit_kbytes + total_swap
Siehe auch die Beschreibung von /proc/sys/vm/admin_reserve_kbytes und
/proc/sys/vm/user_reserve_kbytes.
/proc/sys/vm/overcommit_ratio (seit Linux 2.6.0)
Diese schreibbare Datei definiert einen Prozentwert, zu dem Speicher überbucht werden kann. Der
Vorgabewert in der Datei ist 50. Siehe die Beschreibung von /proc/sys/vm/overcommit_memory.
/proc/sys/vm/panic_on_oom (seit Linux 2.6.18)
Dies aktiviert oder deaktiviert eine Kernel-Panik bei Speicherknappheit.
Wenn diese Datei auf den Wert 0 gesetzt wird, wird der OOM-Killer des Kernels einen außer
Kontrolle geratenen Prozess töten. Normalerweise findet er einen außer Kontrolle geratenen Prozess
und das System überlebt.
Wenn diese Datei auf den Wert 1 gesetzt ist, verfällt der Kernel in Panik, wenn Speicherknappheit
eintritt. Wenn allerdings ein Prozess die Zuweisungen an bestimmte Knoten mit Speicherstrategien
(mbind(2) MPOL_BIND) oder Cpusets (cpuset(7)) begrenzt und die Knoten einen
Speichererschöpfungs-Zustand erreichen, kann ein Prozess vom OOM-Killer getötet werden. In diesem
Fall tritt keine Panik ein: Weil der Speicher anderer Knoten noch frei sein kann, muss das System
noch nicht als ganzes unter Speicherknappheit leiden.
Wenn diese Datei schon auf den Wert 2 gesetzt ist, wird bei Speicherknappheit immer eine
Kernel-Panik ausgelöst.
Der Standardwert ist 0. 1 und 2 sind für die Ausfallsicherung in Clustern bestimmt. Wählen Sie den
Wert entsprechend ihrer Strategie oder im Sinn der Ausfallsicherung.
/proc/sys/vm/swappiness
Der Wert in dieser Datei legt fest, wie aggressiv der Kernel Speicherseiten auslagert. Hohe Werte
machen ihn aggressiver, kleinere Werte sanftmütiger. Der Standardwert ist 60.
/proc/sys/vm/user_reserve_kbytes (seit Linux 3.10)
Legt die Speichermenge (in kiB) fest, die für Benutzerprozesse zu reservieren ist. Dies ist dazu
gedacht, einen Benutzer vom Starten eines einzelnen, speicherfressenden Prozesses abzuhalten, so
dass er sich nicht von dem Speicherfresser erholen kann (ihn beenden kann). Der Wert in dieser
Datei hat nur eine Auswirkung, wenn /proc/sys/vm/overcommit_memory auf 2 gesetzt ist (»niemals
Überbuchen«-Modus). In diesem Fall reserviert das System eine Speichermenge, die der kleinere Wert
aus [3% der aktuellen Prozessgröße, user_reserve_kbytes] ist.
Der Vorgabewert in dieser Datei ist der kleinere Wert aus [3% der freien Seiten, 128 MiB],
ausgedrückt in kiB.
Falls der Wert in dieser Datei auf Null gesetzt wird, darf ein Benutzer sämtlichen Speicher durch
einen einzelnen Prozess belegen (abzüglich der durch /proc/sys/vm/admin_reserve_kbytes
reservierten Menge). Alle nachfolgenden Versuche, einen Befehl auszuführen, führen dann zu »fork:
Cannot allocate memory«.
Die Änderung des Wertes in dieser Datei tritt in Kraft, wann immer eine Anwendung Speicher
anfordert.
/proc/sys/vm/unprivileged_userfaultfd (seit Linux 5.2)
Diese (schreibbare) Datei legt einen Schalter offen, der steuert, ob nicht privilegierten
Prozessen erlaubt wird, userfaultfd(2) einzusetzen. Falls diese Datei den Wert 1 enthält, dann
dürfen nicht privilegierte Prozesse userfaultfd(2) verwenden. Falls diese Datei den Wert 0
enthält, dann dürfen nur Prozesse, die über die Capability CAP_SYS_PTRACE verfügen, userfaultfd(2)
einsetzen. Der Vorgabewert in dieser Datei ist 1.
SIEHE AUCH
proc(5), proc_sys(5)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer
<Martin.E.Schauer@gmx.de>, Dr. Tobias Quathamer <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>,
Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.
Linux man-pages 6.9.1 2. Mai 2024 proc_sys_vm(5)