Nach einem Arbeitstag an meinem MacBook Pro mit Mac OS X 10.6.5 zeigt die Aktivitätsanzeige, dass der Großteil der 8 GB Arbeitsspeicher meines Computers „inaktiv“ und nur ein winziger Teil des Kreisdiagramms „frei“ ist. Dies gilt auch, wenn ich alle Anwendungen geschlossen habe und nur der Finder läuft.
Was bedeutet das? Wird der "inaktive" Speicher von irgendetwas belegt? Oder ist es tatsächlich noch für Anwendungen verfügbar? Danke.
OS X verwendet wie die meisten modernen Betriebssysteme ein virtuelles Speichersystem zur Speicherverwaltung. Unter anderem ermöglicht dies dem Betriebssystem, den Computer so zu behandeln, als hätte er einen unbegrenzten Speicherpool. Um dies zu erreichen, lagert das Betriebssystem ungenutzte Teile des Arbeitsspeichers in einen Plattenspeicher aus, der als Auslagerungsdatei bekannt ist .
Natürlich ist RAM nicht unbegrenzt, daher gruppiert OS X RAM in vier Kategorien: verkabelt, aktiv, inaktiv und frei. Verdrahteter Speicher wird vom Betriebssystem benötigt und kann niemals aus dem Speicher 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 seit langem 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 jedoch beenden, wird es nicht aus dem Arbeitsspeicher entfernt; vielmehr wird es in den inaktiven Speicher gestoßen. Aus diesem Grund ist es oft schneller, ein Programm neu zu starten – es befindet sich noch im RAM (versuchen Sie dies mit einem großen Programm wie Firefox).
Sobald Ihr gesamter Speicher belegt ist (freier Speicher ist 0), schreibt das Betriebssystem inaktiven Speicher in die Auslagerungsdatei, um mehr Platz im aktiven Speicher zu schaffen.
Wenn ein Programm in die Auslagerungsdatei ausgelagert wird und Sie es erneut starten, wird es aus der Auslagerungsdatei in den aktiven Speicher gezogen.
Kurz gesagt, es sollte Ihnen eigentlich egal sein, ob Ihr freier Speicher niedrig ist. Tatsächlich möchten Sie, dass es niedrig ist - freier Speicher ist verschwendeter Speicher (da das Betriebssystem ihn für nichts verwendet).
Wenn Sie untersuchen, wie viel Speicher Ihr Computer verwendet, sollten Sie hauptsächlich auf Swap used achten , das Ihnen die Größe der Auslagerungsdatei des virtuellen Speichers angibt, und Page ins , das Ihnen sagt, wie oft das Betriebssystem Speicher aus der Auslagerungsdatei ziehen muss ins aktive Gedächtnis.
Dies ist höchstwahrscheinlich kein Problem und beschleunigt möglicherweise Ihren Computer.
Alle (die meisten?) Betriebssysteme verwenden einen Festplatten-Cache, der einige kürzlich aufgerufene Dateien im Speicher speichert, sodass der wiederholte Zugriff auf diese Dateien beschleunigt werden kann. Der Festplatten-Cache unter OS X hat eine variable Größe und wird als „inaktiver Speicher“ angezeigt.
Wenn ein Programm mehr Speicher benötigt, löscht OS X einen Teil des Festplatten-Cache (die am wenigsten verwendeten Dateien), um Platz für die Ausführung/Erweiterung des Programms zu schaffen.
Ich finde, wenn ich viel kompiliere oder Fotos sortiere (dh auf Tausende von Dateien nacheinander zugreife), wird der Festplatten-Cache erweitert und viel inaktiver Speicher verwendet. Vorausgesetzt, es handelt sich nur um diesen Disk-Cache, ist dies kein Grund zur Sorge.
Wenn es sich um einen Hintergrundprozess oder eine Hintergrundanwendung handelt, deren Speicherverbrauch zunimmt (aber seine Seiten als inaktiv markiert sind), können Sie dies feststellen, indem Sie im Aktivitätsmonitor nach Programmen mit sehr hoher "Real Memory" -Nutzung suchen. Wenn es dort nichts offensichtlich Großes gibt (dh die Gesamtzahl liegt bei weitem unter 8 GB), dann ist es der Datei-Cache.
Sie sollten sehen, dass es wenig oder gar keine Swap-Nutzung gibt, und wenn Sie ein speicherintensives Programm öffnen, verringert sich die Menge an inaktivem Speicher, ohne dass auf die Festplatte ausgelagert werden muss.
(Ich glaube, es gab eine Zeit lang einen Fehler in 10.4 oder 10.5, bei dem dieser Speicher nicht immer sehr effektiv freigegeben wurde und trotz eines großen Festplatten-Cache zu Auslagerungen führte, aber meiner Erfahrung nach scheint dies in 10.6 behoben zu sein).
"Inaktiver" Speicher ist für die Verwendung durch andere Programme verfügbar - es handelt sich lediglich um das Zwischenspeichern von Programmen oder Daten, die Sie kürzlich verwendet haben, falls Sie sie erneut benötigen. Wenn Sie andere 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 halte sie für richtig. Allerdings habe ich diesen Hinweis auf ein "Bereinigungs"-Dienstprogramm gefunden, das jemand geschrieben hat, weil er nicht der Meinung war, dass inaktiver Speicher schnell genug freigegeben wird.
Für eine offizielle Dokumentation zu diesem Thema lesen Sie dies (und suchen Sie nach "inaktiv").
Beginnend mit 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.
MAC OS X Lion Leistungsproblem - defekte Speicherverwaltung
Ich führe den tar+bzip-Befehl, der grundlegendes Unix-Zeug ist, für die große Menge an Bilddateien 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 die Inaktivität ständig zunimmt. Wenn Sie sich den Befehl "bsdtar" ansehen, wird nur ein Fragment des RAM benötigt, sodass das Problem nicht in diesem Prozess liegt. Sie können nicht sagen, dass es sich um ein Programmspeicherleck handelt, denn dann würde das Problem nicht im inaktiven RAM liegen, sondern im aktiven/verdrahteten.
Als der freie Speicher unter 100 MB fiel, startete ich einige Apps, wie Safari, iPhoto und MS Word, und Sie können im Video sehen, dass es sogar Minuten dauert, eine App zu starten, wenn es normalerweise (wenn es freien RAM gibt). würde etwa 3-5 Sekunden dauern, um zu laden.
Ich führe das gleiche Szenario und die gleichen Befehle auf meiner Linux Centos 6-Box aus, kein Problem! Die Speicherauslastung beträgt etwa 10-20 MB, keine Probleme mit Cache/Puffer.
Die Speicherverwaltung muss in Mac OS X sehr kaputt sein!
Diese Diskussion macht nur Sinn, wenn die Aussage, dass "Ihr Computer schneller läuft, wenn der freie Speicher niedrig ist" - wahr wäre. Wenn mein Desktop-Mac nicht seltsam verkabelt ist, beginnt das Programm, das ich gerade ausführe, in der Minute, in der mein freier (überwachter) Speicher knapp wird, bis zu dem Punkt zu versinken, an dem ich nichts mehr tun kann, bis es von selbst wieder hochfährt oder durch meine Intervention des Freien Gedächtnisses. 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?
jhfrontz