Was macht das System mit den restlichen 20%?
Der Kernel verwendet den verbleibenden physischen Speicher für seine eigenen Zwecke (interne Strukturen, Tabellen, Puffer, Caches usw.). Die Einstellung für Speicherüberbelegung behandelt Reservierungen für den virtuellen Speicher der Userland-Anwendung. Der Kernel verwendet keinen virtuellen, sondern einen physischen Speicher.
Warum ist dieser Parameter überhaupt erforderlich?
Der overcommit_ratio
Parameter ist eine Implementierungsoption, die verhindern soll, dass Anwendungen mehr virtuellen Speicher reservieren, als für sie in Zukunft vernünftigerweise verfügbar sein wird, dh wenn sie tatsächlich auf den Speicher zugreifen (oder dies zumindest versuchen).
Die Einstellung overcommit_ratio
auf 50% wurde von den Linux-Kernel-Entwicklern als angemessener Standardwert angesehen. Es wird davon ausgegangen, dass der Kernel niemals mehr als 50% des physischen Arbeitsspeichers verwenden muss. Ihr Kilometerstand kann variieren, der Grund, warum er abstimmbar ist.
Warum sollte ich es nicht immer auf 100% setzen?
Wenn Sie den Wert auf 100% (oder einen "zu hohen" Wert) setzen, wird die Überbindung nicht zuverlässig deaktiviert, da Sie nicht davon ausgehen können, dass der Kernel 0% (oder zu wenig) RAM verwendet.
Es wird nicht verhindern, dass Anwendungen abstürzen, da der Kernel möglicherweise ohnehin den gesamten erforderlichen physischen Speicher verhindert.