Was bedeutet es, wenn ich am Ende eines Arbeitstages viel „inaktives“ Gedächtnis habe?

21

Nach einem Arbeitstag auf meinem MacBook Pro mit Mac OS X 10.6.5 zeigt Activity Monitor, dass der Großteil der 8 GB Speicher meines Computers "Inaktiv" ist und nur ein winziger Teil des Kreisdiagramms "Frei" ist. Dies ist auch dann der Fall, wenn ich alle Anwendungen geschlossen habe und nur der Finder ausgeführt wird.

Was bedeutet das? Wird der "inaktive" Speicher von etwas belegt? Oder ist es tatsächlich noch für Anwendungen verfügbar? Vielen Dank.

hpy
quelle

Antworten:

27

Wie die meisten modernen Betriebssysteme verwendet OS X ein virtuelles Speichersystem zur Speicherverwaltung. Dies ermöglicht es dem Betriebssystem unter anderem, den Computer so zu behandeln, dass er über einen unbegrenzten Speicherpool verfügt. Um dies zu erreichen, gibt das Betriebssystem nicht verwendete Teile des Arbeitsspeichers an einen Plattenspeicher weiter, der als Auslagerungsdatei bezeichnet wird .

Natürlich ist der Arbeitsspeicher nicht unbegrenzt, daher gruppiert OS X den Arbeitsspeicher in vier Kategorien: verkabelt, aktiv, inaktiv und frei. Kabelgebundener Speicher wird vom Betriebssystem benötigt und kann niemals ausgelagert werden. Aktiver Speicher ist Speicher, der von derzeit ausgeführten Programmen verwendet wird. Inaktiver Speicher wurde kürzlich von Programmen verwendet, die jetzt beendet wurden (oder lange nicht mehr verwendet wurden). Freier Speicher ist, wie der Name schon sagt, RAM, das nicht verwendet wird.

Wenn Sie ein Programm starten, wird es in den aktiven Speicher geladen. Wenn Sie ein Programm beenden, wird es jedoch nicht aus dem RAM entfernt. Vielmehr stößt es auf inaktiven Speicher. Aus diesem Grund ist es oft schneller, ein Programm neu zu starten - es befindet sich immer noch im RAM (versuchen Sie dies mit einem großen Programm wie Firefox).

Sobald der gesamte Arbeitsspeicher belegt ist (der freie Arbeitsspeicher ist 0), schreibt das Betriebssystem inaktiven Arbeitsspeicher in die Auslagerungsdatei, um mehr Platz im aktiven Arbeitsspeicher zu schaffen.

Wenn ein Programm in die Auslagerungsdatei ausgelagert wird und Sie es neu starten, wird es aus der Auslagerungsdatei in den aktiven Speicher verschoben.

Kurz gesagt, es sollte Ihnen eigentlich egal sein, ob Ihr freier Speicher niedrig ist. Tatsächlich möchten Sie, dass der freie Speicher fast leer ist (da das Betriebssystem ihn für nichts verwendet).

Wenn Sie untersuchen, wie viel Speicher Ihr Computer verwendet, sollten Sie hauptsächlich auf Swap achten , das die Größe der Auslagerungsdatei für den virtuellen Speicher angibt, und auf Page Ins , das angibt, wie oft das Betriebssystem Speicher aus der Auslagerungsdatei abrufen muss in den aktiven Speicher.

mipadi
quelle
2
Ich finde, Page-Outs sind ein besserer Indikator für die Auslagerungsnutzung als Page-Ins, da Page-Ins das Laden von Programmen sowie das Laden aus der Auslagerungsdatei beinhalten.
Gordon Davisson
1
Im Aktivitätsmonitor beträgt meine VM-Größe mehr als 160 GB! Gibt es eine Art Swap-Datei auf meinem Computer, die tatsächlich so groß ist ?!
HPY
1
@penyuan: Nein. Theoretisch kann die Swap- Datei so groß sein, aber die tatsächliche Größe der Swap-Datei wird im Activity Monitor als Swap bezeichnet .
Mipadi
1
Inaktiver Speicher ist zum Teil, wie Sie sagen, zwar speziell ein Cache des Dateisystems oder der Bibliotheken, auf die von einer Anwendung erneut zugegriffen werden kann, es handelt sich jedoch auch um Speicherblöcke von derzeit ausgeführten Anwendungen, auf die in einem bestimmten Zeitraum nicht zugegriffen wurde (nicht sicher) der genauen Zeitdauer). Der Kernel markiert diese als inaktiv , um sie für das Auslagern auf die Festplatte zu priorisieren, wenn der freie Speicher zu gering ist.
Drfrogsplat
2
@deceze: Inaktiver Speicher wird ausgelagert. Aktiver Speicher wird inaktiv gesetzt, wenn er nicht mehr benötigt wird. Ich nehme an, wenn Sie so wenig Speicher haben, dass es keinen Platz für inaktiven Speicher gibt, wird der aktive Speicher direkt auf die Festplatte ausgelagert, aber das ist ein besonderer Umstand. In der Tat wächst die Swap-Datei theoretisch auf unbestimmte Zeit (bis kein Speicherplatz mehr verfügbar ist), aber auch dies ist ein äußerst seltenes Ereignis.
Mipadi
9

Dies ist höchstwahrscheinlich kein Problem und kann Ihren Computer sogar beschleunigen.

Alle (die meisten?) Betriebssysteme verwenden einen Festplatten-Cache, der einige kürzlich aufgerufene Dateien im Speicher speichert, so dass der wiederholte Zugriff auf diese Dateien beschleunigt werden kann. Der Festplatten-Cache unter OS X ist unterschiedlich groß und wird als "Inaktiver Speicher" angezeigt.

Wenn ein Programm mehr Speicher benötigt, löscht OS X einen Teil des Festplattencaches (die zuletzt verwendeten Dateien), damit das Programm ausgeführt bzw. erweitert werden kann.

Wenn ich viel kompiliere oder Fotos sortiere (dh nacheinander auf Tausende von Dateien zugreife), wird der Festplatten-Cache erweitert und viel inaktiver Speicher belegt. Vorausgesetzt, es ist nur dieser Festplatten-Cache, gibt es nichts zu befürchten.

Wenn es sich um einen Hintergrundprozess oder eine Hintergrundanwendung handelt, deren Speichernutzung zunimmt (die Seiten werden jedoch als inaktiv markiert), können Sie feststellen, ob Programme mit einer sehr hohen "Real Memory" -Nutzung in der Aktivitätsüberwachung vorhanden sind. Wenn dort nichts offensichtlich Großes ist (dh die Gesamtsumme liegt weit unter 8 GB), ist dies der Dateicache.

Sie sollten feststellen, dass die Swap-Nutzung gering ist, und wenn Sie ein speicherintensives Programm öffnen, verringert sich die Menge des inaktiven Speichers, ohne dass Sie auf die Festplatte wechseln müssen.

(Ich glaube, es gab eine Zeit lang einen Fehler in 10.4 oder 10.5, durch den dieser Speicher nicht immer sehr effektiv freigegeben wurde und der trotz eines großen Festplattencaches zu einem Auslagerungsvorgang führte. Meiner Erfahrung nach wurde dieser Fehler in 10.6 behoben.)

drfrogsplat
quelle
Inaktiver Speicher ist RAM, nicht auf die Festplatte ausgelagerter Speicher.
Mipadi
3

"Inaktiver" Speicher kann von anderen Programmen verwendet werden. Es werden nur Programme oder Daten zwischengespeichert, die Sie kürzlich verwendet haben, falls Sie sie erneut benötigen. Wenn Sie verschiedene Programme starten oder andere Daten benötigen, wird der zwischengespeicherte Speicher gelöscht und bei Bedarf für Ihre neue Arbeitslast verfügbar gemacht.

Das ist jedenfalls die Theorie, und ich glaube, dass es solide ist. Allerdings habe ich diesen Verweis auf ein "Bereinigungs" -Dienstprogramm gefunden, das jemand geschrieben hat, weil er nicht glaubte, dass inaktiver Speicher schnell genug freigegeben wird.

Um offizielle Dokumentation zu diesem Thema zu erhalten, lesen Sie diese (und suchen Sie nach "inaktiv").

Michael H.
quelle
Mein MBP sagt zur Zeit: freie 58 MB, verdrahtete 239 MB, aktive 1,84 GB, inaktive 900 MB - und das System arbeitet recht gut.
Michael H.
1
Ich finde, Reinigungsbefehl ein Gott senden Werkzeug. Mit Photoshop + Firefox + Illustrator + Netbean + SmartGit kann ein 4-GB-iMac mühelos zu Tode kriechen. Natürlich ist Firefox der Hauptschuldige, aber wenn Sie die Dinge etwas beschleunigen möchten, beenden Sie Firefox und geben Sie "purge &" Good as new
Antony
2
In der Manpage von Purge heißt es sogar, dass es nur zum Leeren des Festplattencaches (nicht zum anonymen Speichern: Stapeln, Heap oder Kopieren beim Schreiben) für die Leistungsanalyse geschrieben wurde (gerade weil der Festplattencache das System beschleunigt). Es wurde nicht für eine schnellere Veröffentlichung geschrieben, da die Ausführung langsamer ist als der Kernel, der den Speicher bei Bedarf dynamisch zurückgewinnt. Durch das vollständige Schließen einer App werden alle zugewiesenen Mems entfernt . Wenn Sie die App anschließend bereinigen , wird der Ladevorgang der Anwendung verlangsamt. Weitere Informationen finden Sie unter linuxatemyram.com/play.html . Ich denke, die Säuberung hat etwas Psychologisches, genauso wie das zwanghafte Leeren des Mülls.
Jano
1

Ab OS X 10.5 gibt es offensichtliche Speicherverwaltungsprobleme in MAC OS X.

Ich habe es endlich geschafft, das problematische Szenario zu reproduzieren, also habe ich den Test ausgeführt und den Bildschirm als Video aufgezeichnet.

Leistungsproblem bei MAC OS X Lion - fehlerhafte Speicherverwaltung

Ich führe den Befehl tar + bzip in meinem Ordner Pictures / aus. Kurz vor dem Start führe ich den Befehl "purge" aus, um inaktive / zwischengespeicherte Programmdaten zu löschen.

Sie können auf dem Video sehen, dass der freie Speicher sehr schnell abnimmt und inaktiv ständig steigt. Wenn Sie sich den Befehl "bsdtar" ansehen, wird nur ein Teil des Arbeitsspeichers benötigt, sodass das Problem bei diesem Vorgang nicht auftritt. Sie können nicht sagen, dass es sich um einen Programmspeicherverlust handelt, da das Problem dann nicht im inaktiven RAM, sondern im aktiven / verkabelten RAM liegt.

Als der freie Speicher unter 100 MB sank, startete ich einige Apps, wie Safari, iPhoto und MS Word, und Sie können in dem Video sehen, dass es sogar Minuten dauert, um eine App zu starten, wenn dies normalerweise der Fall ist (wenn es freien RAM gibt) Das Laden würde 3-5 Sekunden dauern.

Ich führe dasselbe Szenario und dieselben Befehle auf meiner Linux Centos 6-Box aus, kein Problem! Die Speicherauslastung beträgt ca. 10-20 MB, keine Probleme mit Cache / Puffer.

Die Speicherverwaltung muss in Mac OS X sehr kaputt sein!

Egremyl
quelle
1
Einiges von dem, was Sie beschreiben, könnte die Grundlage einer anderen Frage bilden, aber es ist keine Antwort auf diese Frage.
Graham Perrin
2
Ich würde sagen, dass Ihre Beschreibung des freien Speichers, der sich schnell auf den Sollwert verringert und das System den gesamten Rest des nicht aktiven und verkabelten RAM als inaktiv ansammelt, ein Hinweis darauf ist, dass das System genau wie geplant arbeitet. Nur weil die Speicherverwaltung auf einem Betriebssystem anders ist als auf einem anderen, heißt das nicht, dass sie auch nicht funktioniert. Optimierungsentscheidungen haben immer eine Schattenseite.
bmike
0

Diese Diskussion ist nur dann sinnvoll, wenn die Aussage "Ihr Computer läuft schneller, wenn der freie Speicher knapp wird" wahr ist. Sofern mein Desktop-Mac nicht komisch verkabelt ist, gerät der freie (überwachte) Arbeitsspeicher in dem Moment, in dem ich ein Programm ausführe, ins Stocken, in dem ich nichts tun kann, bis er von alleine oder von alleine wiederhergestellt wird durch meine Free Memory Intervention. Ich habe einen iMac 2118 (2006 oder später), der maximal 3 GB RAM hat, also versuche ich, ihn zu verwalten, wenn ich kann, aber das ist sehr frustrierend. Irgendwelche Gedanken?

webbglider
quelle