Wie kann verhindert werden, dass OSX so viel virtuellen Speicher zuweist, wie Speicherplatz auf der Festplatte verfügbar ist?

Ich hatte kürzlich Datenverlust, weil die Festplatte vollständig vom virtuellen Speicher belegt war und einige Programme nicht mit null freiem Speicherplatz auf der Festplatte umgehen konnten. Wie kann ich dies verhindern (außer immer ein paar GB als Puffer zu behalten)?

Diese Frage ist möglicherweise ein Duplikat von Gibt es eine Möglichkeit, die Größe der Datenträgerauslagerungsdatei in Mac OS X zu begrenzen? (2012-09-19), die eine akzeptierte Antwort hat.

Antworten (1)

Ich kann Ihnen eine Möglichkeit vorschlagen, dies zu tun, obwohl sie nicht vollständig ist.

Sie können das Speicherlimit pro Prozess mit festlegen launchctl limit(siehe Manpage ). Dies ist jedoch pro Prozess nicht systemweit.

Im wirklichen Leben verbrauchen nur wenige Prozesse eine große Menge an Speicher. Daher würde ich Ihnen raten, sich die Ausgabe anzusehen Activity Monitorund zu sehen, welche Prozesse am meisten verbrauchen. Zählen Sie diejenigen, die mehr als 20 % Ihres Arbeitsspeichers verwenden. Wie viele solcher Prozesse haben Sie? Nehmen wir n an und gehen davon aus, dass Sie m GB RAM haben. Wie viel maximalen Auslagerungsbereich möchten Sie verwenden? Nehmen wir an , s GB Swap.

Ich würde folgende Rechnung machen:(m + s - 1) / n = <max memory per process in GB>

Konvertieren Sie die GB in B:<max memory per process in GB> * 1024 * 1024 * 1024 = <max mem per proc in B>

Probieren Sie nun dieses Limit aus und prüfen Sie, ob es funktioniert (beachten Sie, dass diese Einstellung nach einem Neustart verloren geht, daher ist die Ausführung "sicher"):

sudo launchctl limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>

Wenn Sie mit dieser Wahl zufrieden sind, können Sie sie speichern, damit sie dauerhaft sind. Bearbeiten Sie die Datei /etc/launchd.confund fügen Sie hinzu:

limit rss <max mem per proc in B> <max mem per proc in B + 1073741824>
@bmike Es tut mir leid, aber kannst du deine Kommentare nicht in deine eigene Antwort oder deinen eigenen Kommentar einfügen? Ich bin mir nicht sicher, ob die Tonne, die Sie verwenden, zu meiner passt. Obwohl es wertvoll ist, werde ich Sie bitten, Ihre Änderung rückgängig zu machen. Fühlen Sie sich frei, es als Kommentar zu meiner Antwort oder als einfache Antwort hinzuzufügen.
Klicken Sie einfach auf „Bearbeiten“ und machen Sie meine Änderungen rückgängig – seien Sie sich bewusst, dass die Seite sehr offen für mehr als einen Mitwirkenden an einem Beitrag ist. Was ich vorgeschlagen habe, ist eine Antwortkomponente und kein Kommentar, IMO, aber ich werde wahrscheinlich Ihre Worte kopieren und meine hinzufügen, wenn Sie sich dadurch besser fühlen. Ich dachte, Sie hätten den Großteil der Arbeit geleistet und wollten, dass die Urheberschaft bei Ihnen bleibt, aber ich bin offen dafür, Ihren Eintrag so zu belassen und eine zweite Antwort hinzuzufügen.
Ich weiß, ich habe auch einige meiner Posts als Community-Wiki eingestellt. Aber dieses Mal hatte ich das Gefühl, dass der Stil unserer Antworten zu unterschiedlich war, und es fühlte sich unangenehm an. Danke, ich habe festgestellt, dass man Änderungen rückgängig machen kann! Tolles Werkzeug!
@Huygens etwas verwirrt, sollte man bei der Konvertierung von GB in Byte nicht multiplizieren?
@FrancisLaclé in der Tat! Du hast Recht. Ich werde die Antwort bearbeiten und korrigieren. Irgendwie ein 5y+ alter Bug ;-)