Deaktivieren des inaktiven memoryaustauschs

background:

OSX speichert einige Informationen im RAM, die nicht mehr verwendet werden, aber kürzlich verwendet wurden. Dies wird als inaktiver memory bezeichnet und soll die Benutzererfahrung verbessern, indem einige Aktionen beschleunigt werden:

Wenn Sie z. B. Mail verwendet haben und dann beendet haben, wird der RAM, den Mail verwendet hat, als Inaktiver memory markiert. Inaktiver memory ist für die Verwendung durch eine andere Anwendung verfügbar, genau wie der freie memory. Wenn Sie Mail jedoch öffnen, bevor der inaktive memory von einer anderen Anwendung verwendet wird, wird Mail schneller geöffnet, da der inaktive memory in den aktiven memory konvertiert wird, anstatt ihn vom langsameren Laufwerk zu laden.

Hört sich fragwürdig an (wie sehr können Sie vielleicht Mail auf einem Quad-Core-Rechner beschleunigen?), Aber zumindest konnte das nicht schaden, da ein solcher memory wie freier memory behandelt werden kann! Eigentlich kann es :

Wenn in OS X die Anzahl der Seiten in der freien list unter einen berechneten Schwellenwert fällt, ruft der coreel physische Seiten für die freie list zurück, indem er inaktive Seiten aus dem memory austauscht.

Dies stellt mich in Frage, ob die memoryverarbeitung von OSX tatsächlich überlegen ist; nach all der gleichen Seite erwähnt, dass

Funkruf jeglicher Art … wirkt sich negativ auf die performance aus, da es das System zwingt, viel time mit dem Lesen und Schreiben auf die Festplatte zu verbringen. Das Lesen einer Seite aus dem backgroundspeicher nimmt eine beträchtliche time in Anspruch und ist viel langsamer als das direkte Lesen aus dem RAM. Wenn das System eine Seite auf die Festplatte schreiben muss, bevor es eine andere Seite von der Festplatte lesen kann, ist die Auswirkung auf die performance noch schlechter.

Problem:

Dies (Auslagern des inaktiven memorys und die anschließende starke performancesverschlechterung) tritt wahrscheinlich sogar während trivialer Aufgaben auf, wie z. B. dem Durchsuchen mehrerer Tabs, selbst wenn die Anzahl der gleichzeitig geöffneten Tabs innerhalb vernünftiger Grenzen gehalten wird (sowohl Safari als auch Chrome scheinen sich schuldig zu sein). Hinzufügen zum inaktiven memory, wenn ein Tab geschlossen ist).

Die Maschine wird kaum verwendbar, wenn dies geschieht – selbst das Öffnen des Terminals und das Löschen des memorys kann einige Minuten dauern.

Frage:

Kann der inaktive memory ausgetauscht werden? Oder, wenn inaktiver memory nicht unbedingt erforderlich ist, kann er vollständig deaktiviert werden?

Alternativ ist ein Dämon oder eine vorzugsweise Apple-App verfügbar, die die inaktive memoryauslastung (ein OSX-Oxymoron) überwacht und wenn es einen beliebigen Betrag (ein halbes Gig?) purge wird eine purge durchgeführt?

2 Solutions collect form web for “Deaktivieren des inaktiven memoryaustauschs”

Ich habe diese Frage schon eine ganze Weile recherchiert, und ich bin zu dem Schluss gekommen, dass es zwar mehrere so genannte "Lösungen" an verschiedenen Stellen gibt, aber keines davon das Problem wirklich triggers oder die Symptome verschwinden lässt. Das Beste, was ich gefunden habe, sind Techniken, die sich ändern, wenn inaktiver memory ausgetauscht wird, wie z. B. die Verwendung des purge Sie sich bezogen haben. Ich glaube, dass MacLemon richtig ist, dass Swapping nur vollständig und nicht selektiv deaktiviert werden kann. Das Deaktivieren des Austauschs von inaktivem memory würde in der Praxis dem Deaktivieren von virtuellem memory gänzlich entsprechen – was eine praktikable Lösung auf einer Maschine mit wirklich großen Beträgen sein könnte. RAM, aber ist auf Maschinen mit einer niedrigen maximalen RAM-Kapazität, wie MacBooks oder Minis unpraktisch.

Der Grund dafür, dass keine der Ad-hoc-Bereinigungslösungen die Situation wesentlich verbessert, ist, dass es wirklich nur zwei Möglichkeiten gibt, OS X zu zwingen, inaktiven memory zu löschen: den purge oder die Zuteilung des gesamten freien memorys (und da ich nicht sicher, welche Methode purge verwendet, diese beiden können tatsächlich mehr oder weniger die gleichen sein). purge , wie Sie erwähnt haben, dauert eine nicht-triviale time zu vervollständigen. Die Zuweisung des gesamten freien memorys beschleunigt einfach den process, durch den die Inhalte des inaktiven memorys natürlich ausgelagert werden würden, und beansprucht daher immer noch die gleiche große Menge an Systemressourcen. Der einzige Vorteil dieser beiden Lösungen besteht darin, dass sie es Ihnen ermöglichen, auszuwählen, wann der Austausch stattfindet. Dies kann also geschehen, bevor Sie normalerweise versuchen, diesen memory einem anderen zuzuteilen. Ob das wirklich nützlich für Sie ist, hängt von mehreren Faktoren ab, so dass es am einfachsten ist, es herauszufinden.

Ich habe einige der memory-Clearing-Dienstprogramme dort getestet, und ich habe festgestellt, dass für mich die manuelle Erzwingung von inaktivem Swap eine aktivere Überwachung von memoryebenen erfordert, als es praktisch ist, während ich tatsächlich arbeite. Dies erzwingt automatisch den Austausch, wenn der freie memory unter einen bestimmten Schwellenwert sinkt. Dies ist nicht besser, als wenn das Betriebssystem es selbst erledigen würde, da ich immer noch keine Kontrolle darüber habe, wann der Austausch stattfindet und meine Apps SPOD werden. Also, während es eine App gibt, die genau das tut, was Ihre alternative Frage verlangt, macht das die Situation nicht weniger schmerzhaft.

Bis das Apple-Entwicklerteam von Apple entscheidet, dass das memoryverwaltungssystem nicht so funktioniert, wie es soll, und sie einen path finden, es richtig zu machen, ist die einzige wirkliche Lösung, zu identifizieren, welche Apps den inaktivsten memory erzeugen und stoppt benutze sie. In meiner Situation bedeutete dies, Webbrowser zu ändern. Ich habe eine Vielzahl von ihnen getestet, und Chrome ist bis jetzt derjenige, der den am wenigsten inaktiven memory zu erzeugen scheint, wahrscheinlich zum Teil, weil jeder Tab und jede Erweiterung als ein separater process ausgeführt wird, so dass die native memoryverwaltung des Betriebssystems jeden behandeln eine separat in Bezug auf die Priorisierung von Swapping. Safari ist das Schlimmste, was ich versucht habe. Ab Safari 5.1 konnte ich einige Registerkarten öffnen, absolut nichts tun und beobachten, wie der inaktive memory im Aktivitätsmonitor schnell anstieg – innerhalb von etwa fünf Minuten ging er leicht von <1gb inaktiv auf> 3gb inaktiv, führte den Auslagerungszyklus aus und dann tue genau das Gleiche. (Zugegeben, memory, der nichts tut, ist genau das, was ihn überhaupt inaktiv macht, aber er sollte nicht mehr inaktives Gedächtnis erzeugen, als zuerst aktiv zugewiesen wurde.) Safari 6 unter Mountain Lion ist ein bisschen besser, aber nicht besser genug, um es wert zu sein, zurück zu schalten. Firefox, der nicht auf WebKit basiert, sollte besser sein als Safari oder Chrome, aber es hat seine eigenen Legacy-memoryverwaltungsprobleme, einschließlich einer Geschichte von memorylecks, 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 dem Betriebssystem mitteilte, einfach den Inhalt des inaktiven memorys bei Bedarf abzulegen, anstatt den Inhalt auf die Festplatte zu tauschen. Aber ich erwarte nicht, dass Apple jemals eine solche Option zur Verfügung stellt.

Wie viel RAM hat dein Mac? Auch Browser (vor allem Webkits) sind dafür bekannt, dass sie heutzutage riesige Mengen an memory nutzen. Inaktiver memory wird im Gegensatz zu freiem RAM, der gerade dort verbraucht, genutzt. Im Falle eines Browsers können Sie damit das Schließen eines Tabs rückgängig machen und trotzdem die Historie beibehalten usw.

Sie können das Austauschen von memory vollständig deaktivieren, indem Sie sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist und einen Neustart sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist . Sie können Swapping nicht selektiv deaktivieren.

Sie können dies rückgängig machen, indem Sie sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist und erneut starten.

  • Ist es möglich, den genauen memoryplatz für die Indizierung und den virtuellen memory zu reservieren?
  • Erhöhen Sie die Größe der Auslagerungsgröße nach 59 GB
  • Wie kann ich wirklich schlechte performance meiner 13 "MBP 2011 auf 10.6 diagnostizieren?
  • So reduzieren Sie die Größe von Auslagerungsdateien (Mac OS 10.6) \
  • Warum sollte ich die Auslagerungsdatei in Mac OS X deaktivieren?
  • Koffein nimmt 2.88 GB virtuellen memory in Anspruch
  • Wie kann der virtuelle memory größer sein als der gesamte verfügbare memoryplatz?
  • vm_compressor_mode (vm.compressor_mode) Werte für aktivierten komprimierten memory in OS X