Deaktivieren Sie den inaktiven Speicheraustausch


7

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, purgewird a ausgeführt?


1
Ich sehe die Tags, von denen ich annehme, dass sie das Paging des inaktiven Speichers in Mountain Lion noch nicht behoben haben.
Pieter

@Pieter: Anscheinend gibt es nichts zu beheben, da die aktuelle Implementierung genau so ist, wie Apple es beabsichtigt hat :)
ov

sie bestätigten dies als "wie beabsichtigt arbeiten"? Ich verstehe nicht, welche Vorteile es hat, inaktiven Speicher auf die Festplatte zu übertragen.
Pieter

"... nachfolgende starke Leistungsverschlechterung ..." - trotz der Angaben in der Mac Developer Library bin ich nicht davon überzeugt, dass alle Verschlechterungen stark negativ sind. Es wird vermutet, dass das Betriebssystem in einigen Fällen einen negativeren Effekt hat, wenn es versucht, seinen Ansatz für externe Auslagerungsdateien einzuschränken : Virtueller Mac-Speicher: Wie OS X Swap- (Seiten-) Dateien mit einem normalen Start genauso frei erstellen kann wie mit einem Safe boot (swapfile1 etc)
Graham Perrin

1
@Graham Perrin: Wenn ich streng sage, spreche ich aus Erfahrung (wenn auch nicht unbedingt aus einer gemeinsamen). Wenn Sie mit riesigen Datenmengen arbeiten und vor der Archivierung ständig keinen Festplattenspeicher mehr haben, wird die Auslagerungsdatei immer mehr fragmentiert, Verlängerung der Zugriffszeit usw. (wäre kein Leistungsproblem bei einer SSD, wie ich mir vorstellen kann, klingt aber nach etwas, das die Lebensdauer verkürzen würde). Ich befürworte dieses Verwendungsmuster nicht, aber dies ist nur etwas, auf das ich immer wieder stoße.
ov

Antworten:


8

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 purgeBefehls, 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 purgeBefehl oder das Erzwingen der Zuweisung des gesamten freien Speichers (und da ich es nicht bin) sicher, welche Methode purgeverwendet wird, können diese beiden tatsächlich mehr oder weniger gleich sein).purgeWie 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.


5

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.plistund 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.plistund erneut starten.


"... Inaktiver Speicher wird gut genutzt ..." - +1 .
Graham Perrin

@ MacLemon mit 4 GB RAM und Maverick OS, ich finde, dieser Mac ist sehr langsam. Ich habe ungefähr 1,5 GB inaktiven RAM. Ich versuche nur Ihren Vorschlag, aber es scheint nicht gut zu funktionieren. Irgendwelche anderen Vorschläge?
Bobby Stenly

Ich habe nie gesagt, dass es gut funktionieren würde, und die erste Frage betraf die Größe des Arbeitsspeichers im Mac. Es beantwortet Ihre Frage. Die richtige Lösung für Ihre Frage besteht darin, mehr RAM zu erhalten.
MacLemon

Ich habe 16 GB (und SSD) und das neueste OSX ist beim Tauschen verdammt langsam. Es ist schrecklich, wie es sein Gedächtnis verwaltet.
Kenorb

Hinweis: Das Deaktivieren des dynamischen Pagers funktioniert nicht auf Systemen mit aktiviertem SIP ( System Integrity Protection ).
Kenorb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.