Provided by: manpages-de_4.27.0-1_all bug

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_ratiototal_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)