Ich suche nach einer Erklärung der Speichernutzung auf meinem Computer, insbesondere angesichts des Beispiels in diesem Screenshot unten:
Ich verstehe, was ist Free
und Active
bedeutet
Aber was bedeuten Wired
und Inactive
?
Vor allem inactive
, warum verbraucht es so viel Speicher für etwas, das wir nicht verwenden?
Inaktive Erinnerung hat wegen eines beschissenen Namens einen schrecklichen Ruf bekommen. Es hätte so etwas wie "Machen Sie Ihren Mac beim zweiten, dritten und vierten Mal, wenn er die gleiche Aufgabe ausführt" heißen sollen, aber das ist auch ein schrecklicher Name.
Apple hat den Aktivitätsmonitor neu geschrieben, als es mehrere neue Funktionen einführte und komprimierten Speicher hinzufügte, sodass einiges davon nicht mehr für macOS gilt, das keinen „inaktiven Speicher“ anzeigt, aber dies gilt immer noch für die Speicherverwaltung von Mac OS X, wie hier dokumentiert Version der Aktivitätsanzeige: https://support.apple.com/en-us/HT201538
So habe ich es jemandem erklärt, dem das Konzept des virtuellen Speichers unter OS X neu ist:
Das Problem tritt auf, wenn Free+Inactive weniger als ungefähr 1/3 der Gesamtsumme ausmachen und dann kann es wirklich langsam werden.
Inaktiver Speicher ist Bonusgeschwindigkeit / Double Duty RAM. Es ist jederzeit kostenlos, macht aber auch wiederholte Aufgaben viel, viel schneller, wenn das System richtig geraten und etwas im RAM behalten hat, das Sie noch einmal tun werden. Es ist schneller als ausgelagerter Speicher, da es bereits im RAM geladen ist und Dinge beschleunigt, wenn das virtuelle Speichersystem gute Vermutungen anstellt.
Wenn Sie sich fragen, ob RAM ein Problem ist, können Sie, anstatt sich jede der 4 Kategorien anzusehen (5, wenn Sie den aktiven Austausch mitzählen), W + A als Verlangsamung eines neuen Programms / einer neuen Aufgabe und F + I als Beschleunigung eines neuen Programms koppeln neues Programm/Aufgabe. Je mehr F+I Sie haben, desto mehr neue Programme können Sie starten, bevor sich der Arbeitsspeicher auf das Auslagern verlassen muss, um den zugewiesenen Speicher zu jonglieren.
Sie müssen nicht wirklich wissen, wie Swap funktioniert, da ich es oben erwähnt habe. Wenn ein Programm im Leerlauf ist und tagelang (oder stundenlang) nicht verwendet wurde, schreibt das System diesen RAM auf die Festplatte, anstatt das Programm zu beenden. Dadurch kann das System alle möglichen Dinge in Bezug auf die Speicherverwaltung mischen und handhaben und verhindert, dass jedes Programm untereinander sprechen muss, um sich zu einigen, wer weniger Speicher verwendet, wenn das System erschöpft ist.
Hier ist ein reales Beispiel dafür, wie inaktiver RAM verwendet wird.
Sie sollten beim zweiten/dritten Start dramatische Beschleunigungen sehen, da das System lernt, die Dinge, die diese beiden Apps zum Ausführen benötigen, im inaktiven RAM zu halten.
In Ihrem Fall bedeutet die Summe von Wired und Active, dass wahrscheinlich ein Wechsel auf die Festplatte stattfindet und Ihr Mac nicht so schnell ist, wie er sein könnte, da Ihr inaktiver RAM nicht groß genug ist, um alle Dinge zu speichern, die Sie möglicherweise wiederverwenden müssen . Wenn Sie ein schnelles SSD-Laufwerk haben, ist diese RAM-Zuweisung in Ordnung, und anstatt langsamer zu werden, sobald weniger als die Hälfte Ihres RAMs F + I ist, können Sie die Dinge näher auf etwa 1/4 des gesamten RAMs für F reduzieren +I, bevor ich eine merkliche Langsamkeit sehe. Diese Richtlinien sind allgemein, und Sie sollten ein vm_stat 15
oder ein ähnliches Intervall beobachten, um sicherzustellen, dass das kontinuierliche und mittlere Wechseln der Lautstärke Ihren Mac nicht verlangsamt.
Die Zahl, die am wichtigsten ist, um festzustellen, ob Ihr Mac Speicher „gestresst“ wird, ist die Zahl „Auslagerungen“. In der Aktivitätsanzeige in Mavericks wird dies nicht mehr angezeigt, sie zeigen jetzt die Informationen in 'Swap Used:'.
Auslagerungen bedeutet, dass das Betriebssystem festgestellt hat, dass nicht genügend RAM verfügbar ist, um alle angeforderten Anwendungen und Prozesse auszuführen. Was es dann tut, ist, Teile des Speichers, von denen es feststellt, dass sie nicht aktiv verwendet werden, auf die Festplatte auszulagern. Dies bedeutet, dass RAM-Speicher (schnell) in HDD-Speicher (langsam) geändert wird. Wenn dies häufig vorkommt, weil viele Anwendungen ausgeführt werden und der Benutzer zwischen den Anwendungen hin- und herwechselt, dann gibt es viele Auslagerungen und Einlagerungen.
Wenn Sie feststellen, dass die Page-Outs zunehmen, sollten Sie Maßnahmen ergreifen.
Das Problem auf meinem Mac ist, dass der "inaktive" Speicher anscheinend nie gelöscht wird, es sei denn, ich führe eine manuelle Bereinigung im Befehlsfenster durch. Es baut sich auf und baut sich auf, bis ich ein Popup-Fenster erhalte, das mich auffordert, Anwendungen zu beenden. Selbst nachdem ich alle meine Anwendungen beendet habe, habe ich immer noch zu viel inaktiven Speicher, um irgendetwas auszuführen. Auf meinem Mac mit der neuesten Version von Mountain Lion ist es also NICHT wahr, dass inaktiver Speicher zurückgefordert wird, wenn der freie Speicher knapp wird. Entweder habe ich irgendwo eine App, die einen Teil des inaktiven Speichers gesperrt hat, der nie freigegeben wird, oder das iOS hat einen Fehler. (Ich habe 8 GB physischen Speicher ... das sollte reichen!)
vm_stat
wenn es passiert? Was macht Sie so sicher, dass es "zu viel" inaktiven Speicher geben kann, "um etwas auszuführen"? Soweit es mich betrifft, ist dies alles Hörensagen, das keine Unterstützung im Code hat, von dem Sie wissen, dass er tatsächlich im Kernel ausgeführt wird.Vielen Dank an alle Poster und Kommentatoren, dies war ein lehrreicher und nützlicher Thread für mich. Meine letzten Erfahrungen könnten für jemanden nützlich sein. Ich verwende meinen Mac Mini mit OS X10.8.1 und mit 16 GB RAM ausschließlich für Prototyping-Software, die woanders ausgeführt wird. Ich kann Ihnen versichern, dass ich nicht „in ein paar Minuten zu Facebook zurückkehren oder Word nach dem Beenden neu starten werde“ – ich mache das stattdessen auf meinem Macbook.
Meine Aufgabe bestand darin, eine große Menge Daten zu sammeln, I/O ist zeitaufwändig, also ist die Idee, so viele Daten wie möglich auf einen Schlag in den RAM zu lesen, sie dort zu verarbeiten und dann zurück auf die Festplatte zu schreiben , dann wiederholen Sie den Vorgang, bis er fertig ist, was einige Stunden dauert. Was ich sehe, ist, dass jedes Mal, wenn ich einen neuen Datenblock einlese, der inaktive Speicher springt – ich nehme an, dass die System-KI annimmt, dass ich den alten Block wieder verwenden möchte, was ich nicht tue – und der freie Gedächtnis fällt.
Nach ein paar Iterationen dieses Prozesses sinkt der freie Speicher auf wenige MB, der inaktive Speicher gibt ein paar weitere MB frei, und schließlich, nach einigen Minuten des Hin- und Herpendelns zwischen freiem und inaktivem Speicher, wird der inaktive Speicher freigegeben ein paar GB auf einmal. Alles ist so, wie @bmike es beschreibt, und sowohl vm_stat 15 als auch der Aktivitätsmonitor zeigen 0 Auslagerungen an.
Außer vielleicht nicht ganz. Einige Male sind die Dinge reibungslos vorangegangen, ich mache mich auf den Weg, um einen Kaffee oder ein Abendessen zu trinken, und überwache den Prozess nicht, und was nicht passieren sollte, passiert, und der Prozess wirft plötzlich eine Bootsladung von Page-Outs ab und verlangsamt sich erheblich. Stellen Sie fest, dass es wahrscheinlich mein beschissener Code ist, der das Problem verursacht, aber ich wünschte, ich könnte den inaktiven Speicher ausschalten, nur um diese Quelle der Variabilität zu beseitigen. Ist es kaputt? Ich würde das überhaupt nicht sagen, aber ich würde sagen, dass die Speicherverwaltung für meinen Anwendungsfall nicht optimiert ist.
Inaktiver Speicher , der von kürzlich aktiven und beendeten Apps verwendet wird. OS X hält es reserviert, falls der Benutzer das Programm erneut öffnen möchte. In diesem Fall muss OS X keinen Speicher verschieben, der die Leistungsgeschwindigkeit beschleunigt. Wenn Sie das Programm nicht erneut öffnen, wird nach einer Weile der Speicher des Inaktiven freigegeben oder verschoben.(c)
Diese Funktion ist cool, wenn Sie viel RAM haben, aber wenn dies nicht der Fall ist, ist es ziemlich nervig. Eigentlich dreht sich alles um Apfelkram. Wenn Sie ein leistungsstarkes Gadget oder einen Mac haben, ist alles cool, aber wenn Ihr Gerät älter wird, verlangsamen alle Funktionen es.
Sie müssen also spezielle Tricks anwenden, um es zu verwalten.
Für inaktiven Speicher gibt es einen Befehl purge
, um ihn freizugeben.
Im Grunde ist es kaputt. Inaktiver RAM sollte automatisch "geleert" werden, wenn der freie RAM niedrig ist. Was bringt es, RAM für zuvor geöffnete Anwendungen zu halten, in der Hoffnung, dass der Benutzer es erneut öffnet? Die Tatsache, dass Free RAM niedrig ist, weist darauf hin, dass vorhandene ACTIVE-Anwendungen möglicherweise nicht über genügend RAM verfügen und JETZT ausgetauscht werden. GB RAM für geschlossene Anwendungen aufzubewahren, ist einfach dumm. Laut Apples eigener Beschreibung sollte inaktiver RAM automatisch gelöscht oder ausgeliehen werden, wenn der freie RAM niedrig ist. Dies ist eindeutig nicht der Fall.
vm_stat
halten Sie für "keinen freien RAM mehr"? Wenn der Mac "langsam" ist, wofür zählen die Ein- und Auslagerungen vm_stat 1
? Jedes Mal, wenn ich dies auf einem problematischen System betrachte, möchte ich es vm_stat 15
in einem Terminalfenster ausführen (oder mich beim Dateisystem anmelden), damit ich genau wissen kann, wie die Paging-Aktivität ist, wenn ich entscheide, ob/wann ich Dinge wie die tune Pager. Dieses Beispiel hat 100 MB freien RAM, also ist es wahrscheinlich nicht einmal unter Paging-Druck.Inaktiver Speicher beschleunigt im Wesentlichen das Öffnen ehemals geschlossener Prozesse. Wenn Sie feststellen, dass das Mac OS zu viel Speicher beansprucht, den Sie nicht wirklich benötigen, wie von den Dutzenden von Registerkarten, die Sie in Safari oder Chrome geöffnet haben, verwenden Sie einfach den Befehl „Löschen“ im Terminal. Verwenden Sie in OS X Mavericks stattdessen einfach 'sudo purge' (Sie müssen Ihr Passwort eingeben). Es spart wertvolle Sekunden, wenn Sie etwas wieder öffnen müssen, aber wenn Sie ein RAM-intensives Spiel spielen oder eine RAM-hungrige Anwendung öffnen möchten, empfehle ich auf jeden Fall die Verwendung des Purge-Befehls.
GusDeCool
Fahrrad
duci9y
Stil
Josia
kbtz
Daniel
kbyrd
Graham Perrin
Graham Perrin
kbtz
jhfrontz
agentroadkill
Fahrrad
Arc676
sudo
sudo
top
.JBis
Fahrrad
JBis
sudo purge
(was anscheinend keinen Zweck hat ), was machen Apps mit dem Anspruch, Speicher zu bereinigen und zu löschen? Und sind sie nützlich? (Vielleicht eine ganz neue Frage) Beispiel: itunes.apple.com/us/app/memory-clean-free-up-memory/… itunes.apple.com/us/app/dr-cleaner-disk-mem-clean /…K.M