Gibt es eine Möglichkeit, den OOM-Killer zu aktivieren und zu verhindern, dass Linux einfriert? Ich habe Java- und C# -Anwendungen ausgeführt, in denen normalerweise allokierter Speicher verwendet wird, und (wenn ich sie richtig verstehe) verursachen Überkommandos das Einfrieren der Maschine. Als vorübergehende Lösung fügte ich jetztWas ist der beste Weg, zu verhindern, dass nicht genügend Arbeitsspeicher (OOM) auf Linux einfriert?
zu /etc/sysctl.conf hinzu.
Kudos an alle, die erklären können, warum der existierende OOM-Killer nicht in einer garantierten Weise korrekt funktionieren kann, Prozesse abtötend, wenn der Kernel keinen "echten" Speicher mehr hat.
BEARBEITEN - viele Antworten sind in Anlehnung an Michaels "Wenn Sie OOM-Killer-bezogene Probleme haben, dann müssen Sie wahrscheinlich reparieren, was Ihnen den Speicher ausschaltet". Ich denke nicht, dass dies die richtige Lösung ist. Es wird immer Apps mit Bugs geben, und ich möchte den Kernel anpassen, damit mein gesamtes System nicht einfriert. Angesichts meines derzeitigen technischen Verständnisses scheint dies nicht so zu sein, dass es unmöglich sein sollte.
Um den Speicher zu begrenzen, warum sollten Sie den Overcommit nicht auf Parität beschränken? – wallyk
Der OOM-Killer auf meinen Linux-Systemen scheint zu funktionieren wie geplant. Wie sicher bist du, dass du einen OOM Killerfehler hast? Warum denkst du, dass das der Grund ist? Haben Sie auch die Möglichkeit eines Problems mit dem Garbage Collector in Betracht gezogen? – dmckee
@dmckee - alle anderen Anwendungen einfrieren. @ Wallyk - Was ist "Begrenzung der Überkompensierung auf Parität"? – gatoatigrado