Ich bin in den Kerneleinstellungen (in sysctl) auf den folgenden Parameter gestoßen:
vm.min_free_kbytes
Dies ist die Menge an freiem Speicher (RAM), die immer frei ist, egal was passiert. In meinem Fall habe ich nur 1 GiB RAM und dieser Parameter war auf etwa 64 MiB eingestellt. Ich dachte, das ist ziemlich viel, also habe ich ihn bisher auf 8 MiB gesenkt. Ich weiß nicht, ob ich ihn noch weiter senken kann oder ob eine Senkung auf 8 MiB Probleme verursachen könnte. Die Frage ist also, was passieren würde, wenn die Menge des freien Speichers zu gering wäre. Kann ich den Wert bedenkenlos auf 1 MiB senken?
Antwort1
Sollte sicher sein, kann es aber nicht garantieren. Aus den Kernel-Dokumenten:
min_free_kbytes:
This is used to force the Linux VM to keep a minimum number
of kilobytes free. The VM uses this number to compute a
watermark[WMARK_MIN] value for each lowmem zone in the system.
Each lowmem zone gets a number of reserved free pages based
proportionally on its size.
Some minimal amount of memory is needed to satisfy PF_MEMALLOC
allocations; if you set this to lower than 1024KB, your system will
become subtly broken, and prone to deadlock under high loads.
Setting this too high will OOM your machine instantly.
Wenn Sie den Wert zu niedrig einstellen, treten grundsätzlich Probleme bei der Speicherzuweisung auf.