Hintergrund:
OSX speichert einige Informationen im RAM, die nicht mehr verwendet werden, aber kürzlich verwendet wurden. Dies wird als inaktiver Speicher bezeichnet und soll die Benutzererfahrung verbessern, indem einige Aktionen beschleunigt werden:
Wenn Sie beispielsweise Mail verwendet und dann beendet haben, wird der von Mail verwendete RAM als inaktiver Speicher markiert. Inaktiver Speicher kann von einer anderen Anwendung verwendet werden, genau wie freier Speicher. Wenn Sie Mail jedoch öffnen, bevor der inaktive Speicher von einer anderen Anwendung verwendet wird, wird Mail schneller geöffnet, da der inaktive Speicher in den aktiven Speicher konvertiert wird, anstatt ihn vom langsameren Laufwerk zu laden.
Klingt fraglich (wie viel können Sie Mail auf einem Quad-Core-Computer möglicherweise beschleunigen?), Aber zumindest kann das nicht schaden, da ein solcher Speicher wie freier Speicher behandelt werden kann! Eigentlich kann es :
Wenn in OS X die Anzahl der Seiten in der freien Liste unter einen berechneten Schwellenwert fällt, fordert der Kernel physische Seiten für die freie Liste zurück, indem inaktive Seiten aus dem Speicher ausgetauscht werden.
Dies lässt mich fragen, ob die Speicherbehandlung von OSX tatsächlich überlegen ist. Immerhin erwähnt dieselbe Seite das
Paging jeglicher Art ... wirkt sich negativ auf die Leistung aus, da das System viel Zeit zum Lesen und Schreiben auf die Festplatte benötigt. Das Einlesen einer Seite aus dem Hintergrundspeicher nimmt viel Zeit in Anspruch und ist viel langsamer als das direkte Einlesen aus dem RAM. Wenn das System eine Seite auf die Festplatte schreiben muss, bevor es eine andere Seite von der Festplatte lesen kann, sind die Auswirkungen auf die Leistung noch schlimmer.
Problem:
Dies (Auslagern des inaktiven Speichers und die daraus resultierende schwerwiegende Leistungsverschlechterung) tritt wahrscheinlich auch bei trivialen Aufgaben wie dem Durchsuchen mehrerer Registerkarten auf, selbst wenn die Anzahl der gleichzeitig geöffneten Registerkarten in einem angemessenen Rahmen gehalten wird (sowohl Safari als auch Chrome scheinen schuldig zu sein) Hinzufügen zum inaktiven Speicher, wenn eine Registerkarte geschlossen wird).
In diesem Fall kann die Maschine kaum noch verwendet werden. Selbst das Öffnen des Terminals und das Löschen des Speichers kann einige Minuten dauern.
Frage:
Kann das Austauschen von inaktivem Speicher deaktiviert werden? Oder kann inaktiver Speicher vollständig deaktiviert werden, da er nicht unbedingt erforderlich ist?
Gibt es alternativ einen Daemon oder eine vorzugsweise Apple-App, die die inaktive Speichernutzung überwacht (ein OSX-Oxymoron), und wenn eine beliebige Menge (ein halber Gig?) Überschreitet, purge
wird a ausgeführt?
Antworten:
Ich habe diese Frage schon seit einiger Zeit untersucht und bin zu dem Schluss gekommen, dass an verschiedenen Orten zwar mehrere sogenannte "Lösungen" angeboten werden, aber keine das Problem wirklich behebt oder die Symptome verschwinden lässt. Das Beste, was ich gefunden habe, sind Techniken, die sich ändern, wenn inaktiver Speicher ausgetauscht wird, z. B. die Verwendung des
purge
Befehls, auf den Sie verwiesen haben. Ich glaube, dass MacLemon richtig ist, dass das Austauschen nur vollständig und nicht selektiv deaktiviert werden kann. Daher wäre das Deaktivieren des Austauschs von inaktivem Speicher in der Praxis gleichbedeutend mit dem Deaktivieren des virtuellen Speichers insgesamt - was auf einem Computer mit wirklich großen Mengen eine praktikable Lösung sein könnte Dies ist jedoch auf Computern mit geringer maximaler RAM-Kapazität wie MacBooks oder Minis unpraktisch.Der Grund dafür, dass keine der Ad-hoc-Löschlösungen die Situation erheblich verbessert, besteht darin, dass es nur zwei Möglichkeiten gibt, OS X zum Löschen des inaktiven Speichers zu zwingen: den
purge
Befehl oder das Erzwingen der Zuweisung des gesamten freien Speichers (und da ich es nicht bin) sicher, welche Methodepurge
verwendet wird, können diese beiden tatsächlich mehr oder weniger gleich sein).purge
Wie Sie bereits erwähnt haben, dauert die Fertigstellung nicht trivial. Das Zuweisen des gesamten freien Speichers beschleunigt einfach den Prozess, durch den der Inhalt des inaktiven Speichers auf natürliche Weise ausgelagert wird, und beansprucht daher immer noch dieselbe große Menge an Systemressourcen. Der einzige Vorteil dieser beiden Lösungen besteht darin, dass Sie auswählen können, wann der Austausch stattfinden soll. Dies kann also erfolgen, bevor Sie normalerweise versuchen, diesen Speicher einem anderen zuzuweisen. Ob dies für Sie tatsächlich nützlich ist, hängt von mehreren Faktoren ab. Der einfachste Weg, dies herauszufinden, besteht darin, es einfach zu versuchen.Ich habe einige der Dienstprogramme zum Löschen von Speicher getestet, und ich habe festgestellt, dass das manuelle Erzwingen eines inaktiven Austauschs für mich eine aktivere Überwachung der Speicherebenen erfordert, als dies praktisch ist, während ich tatsächlich arbeite und ein Dienstprogramm verwende Das erzwingt automatisch den Austausch, wenn der freie Speicher unter einen bestimmten Schwellenwert fällt. Dies ist nicht besser, als das Betriebssystem dies selbst tun zu lassen, da ich immer noch keine Kontrolle darüber habe, wann der Austausch stattfinden wird und meine Apps SPODEN. Es gibt zwar eine App, die genau das tut, was Ihre alternative Frage verlangt, aber das macht die Situation nicht weniger schmerzhaft.
Bis das OS-Entwicklungsteam von Apple entscheidet, dass das Speicherverwaltungssystem nicht wie vorgesehen funktioniert und eine Möglichkeit gefunden wird, wie es ordnungsgemäß funktioniert, besteht die einzige echte Lösung darin, zu ermitteln, welche Apps den inaktivsten Speicher generieren, und zu stoppen benutze sie. In meiner Situation bedeutete dies, den Webbrowser zu wechseln. Ich habe eine Vielzahl von Tests getestet, und Chrome scheint bisher den am wenigsten inaktiven Speicher zu generieren, wahrscheinlich teilweise, weil jede Registerkarte und jede Erweiterung als separater Prozess ausgeführt wird, sodass die native Speicherverwaltung des Betriebssystems jeden einzelnen behandeln kann eine separat in Bezug auf die Priorisierung des Austauschs. Safari ist das Schlimmste, was ich je versucht habe. Ab Safari 5.1 konnte ich einige Registerkarten öffnen, absolut nichts tun und beobachten, wie der inaktive Speicher im Aktivitätsmonitor schnell anstieg - es würde leicht von <gehen 1 GB inaktiv bis> 3 GB inaktiv innerhalb von etwa fünf Minuten, führen Sie den Swap-Zyklus aus und machen Sie dann genau das Gleiche. (Zugegeben, Speicher, der nichts tut, macht ihn in erster Linie inaktiv, aber er sollte nicht mehr inaktiven Speicher erstellen, als ursprünglich zugewiesen wurde.) Safari 6 unter Mountain Lion ist etwas besser, aber nicht besser genug, um einen Wechsel wert zu sein. Firefox, das nicht auf WebKit basiert, sollte diesbezüglich besser sein als Safari oder Chrome, hat jedoch seine eigenen Probleme mit der Speicherverwaltung, einschließlich einer Vorgeschichte von Speicherlecks, die es in der Praxis nicht besser machen. t mehr inaktiven Speicher erstellen, als ursprünglich aktiv zugewiesen wurde.) Safari 6 unter Mountain Lion ist etwas besser, aber nicht besser genug, um einen Wechsel wert zu sein. Firefox, das nicht auf WebKit basiert, sollte diesbezüglich besser sein als Safari oder Chrome, hat jedoch seine eigenen Probleme mit der Speicherverwaltung, einschließlich einer Vorgeschichte von Speicherlecks, die es in der Praxis nicht besser machen. t mehr inaktiven Speicher erstellen, als ursprünglich aktiv zugewiesen wurde.) Safari 6 unter Mountain Lion ist etwas besser, aber nicht besser genug, um einen Wechsel wert zu sein. Firefox, das nicht auf WebKit basiert, sollte diesbezüglich besser sein als Safari oder Chrome, hat jedoch seine eigenen Probleme mit der Speicherverwaltung, einschließlich einer Vorgeschichte von Speicherlecks, die es in der Praxis nicht besser machen.
Was das Problem wirklich beheben würde, wäre, wenn es eine Option gäbe, wahrscheinlich eine versteckte Option im Betriebssystem, die das Betriebssystem auffordert, den Inhalt des inaktiven Speichers bei Bedarf einfach zu sichern, anstatt den Inhalt auf die Festplatte zu übertragen. Ich erwarte jedoch nicht, dass Apple jemals eine solche Option zur Verfügung stellt.
quelle
Wie viel RAM hat Ihr Mac? Außerdem verbrauchen Browser (insbesondere Webkit-Browser) heutzutage sehr viel Speicher. Inaktiver Speicher wird im Gegensatz zu freiem RAM, das nur dort verbraucht wird und Strom verbraucht, sinnvoll genutzt. Im Falle eines Browsers können Sie damit das Schließen eines Tabs rückgängig machen und den Verlauf usw. beibehalten.
Sie können den Speicheraustausch vollständig deaktivieren, indem Sie ihn ausführen
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
und neu starten. Sie können das Austauschen nicht selektiv deaktivieren.Sie können dies rückgängig machen, indem Sie es ausführen
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
und erneut starten.quelle