Manchmal arbeite ich mit riesigen Datenmengen, die ich zur Verarbeitung im Speicher behalten möchte. Manchmal berechne ich die Menge an Speicher, die mein Programm produzieren wird, falsch, oder ein Debugger multipliziert die Speichernutzung mit einem Faktor, der meinen verfügbaren Speicher überschreitet.
Wann immer ich einen speicherhungrigen Prozess starte, ist dies das, was ich von einem vernünftigen Betriebssystem erwarte: Versuchen Sie, den gesamten freien Speicher zu verbrauchen, und bitten Sie dann einige andere nicht wesentliche Prozesse, den nicht benötigten Speicher aufzugeben schreibe um zu tauschen.
Hier ist, was Ubuntu für mich tut: Essen Sie den gesamten freien Speicher, und bitten Sie das Betriebssystem, alle wichtigen Dienste (Gnome-Sitzung, Terminal, Tastatur) auszutauschen. Frieren Sie dann ein und warten Sie, bis ich den Netzstecker gezogen habe.
Zwei Fragen:
- Wie kann ein Betriebssystem annehmen, dass irgendetwas so wichtig sein könnte, dass es in Ordnung ist, keine Benutzereingaben mehr abzuhören?
- Wie kann ich Ubuntu anweisen, niemals wichtige Dienste auszutauschen und immer auf Benutzereingaben zu reagieren, selbst wenn ein dummer Prozess versucht, mehr Ressourcen aufzuzehren, als das System bereitstellt?
swappiness
Einstellung auf 10, dh vm.swappiness = 10
in /etc/sysctl.conf. Suchen Sie hier nach swappiness, um weitere Informationen zu erhalten. 2) Wenn swappiness nicht hilft ... Auch wenn Sie vielleicht nicht möchten ... vergrößern Sie Ihre Swap-Datei auf 1,5x16G und prüfen Sie, ob dies hilft. Halte mich auf dem Laufenden. Cheers, Al
vm.swappiness=10
zu sysctl.conf HINZUGEFÜGT werden. Eine erfahrene Person könnte sogar den Befehl sysctl im laufenden Betrieb verwenden, um vm.swappiness = 10 festzulegen, ohne die Datei sysctl.conf zu bearbeiten. Prost, Al ps: Warten auf die Antwort des OP.
swapon
um dies herauszufinden)? Cheers, Al