Artikelformat

purge · inactive memory management for your Mac

Apps für das Aufräumen von inaktivem RAM gibt es für den Mac wie Sand am Meer. Generell kann man das Ganze auch ohne grafische Oberfläche über den einfachen Terminalbefehl purge machen und nebenbei mit einem geschulten Auge in der Aktivitätsanzeige mitverfolgen, wo was freigeschaufelt wird.

Bildschirmfoto 2012-03-26 um 13.43.36-s

Wer mit dem Terminal nicht viel anfangen kann, sollte sich die derzeit kostenlose App purge ansehen, mit der man diese Aufgabe über die OSX Menüleiste erledigen kann.

Mac OS X 10.7 Lion wird minimal vorausgesetzt. Alle Mac-User mit Snow Leopard oder niedriger müssen die Apple Developer Tools (CHUD) installieren und purge im Terminal starten.

purge (AppStore Link) purge
Hersteller: Jiulong Zhao
Freigabe: 4+
Preis: 2,99 € Download

Warum ist dieses zusätzliche Speichermanagement überhaupt nötig?

Normalerweise kümmert sich OSX selbstständig darum. Leider ist es aber so, dass fehlerhafte Programme immer wieder genau dieses Vorhaben verhindern. Es wird der inaktive Speicher nicht wieder freigegeben, was im Langzeitbetrieb das komplette System langsam und nicht mehr produktiv arbeiten lässt. …besonders nervig bei der Bild-, Audio-, Videobearbeitung oder auch Nutzung virtueller Maschinen.

Eine Möglichkeit wäre den Mac neu zu booten, ein anderer ist der purge-Befehl bzw. die obige App, die auf diesen Befehl über die Menüleiste zugreift.

Autor: Björn

Ich bin Björn und quasi der COO von aptgetupdateDE. Ich kümmere mich um die PR und allerlei Kontaktaufnahmen zu Firmen und Softwareentwicklern. Erreichbar bin ich bei Twitter, App.net und natürlich per E-Mail.

13 Kommentare

  1. minimalvoraussetzung 10.6.6 ist nicht ganz richtig … app-store bringt die fehlermeldung, dass 10.7 oder neuer vorausgesetzt wird.

  2. Kannte den Befehl bis eben nicht.. WOW! Der bewirkt & schaufelt ja so einiges frei :)

  3. hm, die description aus der man page von purge:

    Purge can be used to approximate initial boot conditions with a cold disk buffer cache for per-
    formance analysis. It does not affect anonymous memory that has been allocated through malloc,
    vm_allocate, etc.

    also wird nur der disk buffer geleert, was u.u. leicht bessere performance bei speicheranforderungen von programmen bringen kann, aber fraglich, ob das bemerkbar schneller wird. memory leaks von programmen kommt man damit aber nicht bei, dazu reicht es auch, das fragliche programm zu beenden.

    • Genau da liegt doch das Problem. Inactiver Speicher hält Informationen von Apps, die gerade geschlossen wurden.

      Der Sinn dieses inactiven Speichers liegt darin, dass geschlossene Programme schneller wieder gestartet werden können, da sie ja noch im Speicher liegen.

      Da Speicher aber nicht endlos vorhanden ist, wirds dort irgendwann ziemlich voll, was OSX eigentlich recht gut im Griff hat. Sobald aber Bugs durch Apps (nicht OSX) auftreten, die genau dieses Speichermanagement-Thema betreffen, wird dieses reservierte inactive RAM nicht mehr freigegeben. Genau an dieser Stelle greift purge ein und räumt auf… und zwar ohne Reboot.

      • schau mal hier: http://support.apple.com/kb/HT1342
        und dort:

        Inactive:
        This information is in RAM but it is not actively being used, it was recently used.
        For example, if you’ve been using Mail and then quit it, the RAM that Mail was using is marked as Inactive memory. Inactive memory is available for use by another application, just like Free memory. However, if you open Mail before its Inactive memory is used by a different application, Mail will open quicker because its Inactive memory is converted to Active memory, instead of loading it from the slower drive.

        inactive ist aus Sicht des memory mgmt das Gleiche wie free. Kommt also eine Speicheranforderung, die sich nicht aus dem free pool erfüllen lässt, ist als nächstes der inactive pool dran. geht auch da nix mehr, wird aus dem active pool geswappt bis genug RAM zur Verfügung steht, und das wird dann spürbar fad.. (der vollständigkeit halber, alles was im wired pool liegt, kann, im unterschied zu active, nicht geswappt werden)

        purge kommt an diese pools aber überhaupt nicht dran (dazu müsste es zumindestens per sudo aufgerufen werden, wo kämen wir denn auch hin, wenn irgendein user dem system anschafft, wie es seinen RAM zu verwalten hat ;)
        was purge macht, und weshalb die memory scheibe im activity monitor anschliessend so freundlich grün leuchtet, ist, die disk buffer zu leeren, die unter os x im virtual memory der processes versteckt sind. schau dir das mal im AM an, wenn du purge ausführst, bei real memory tut sich da so gut wie nix, dafür wird besonders bei den langläufer processes virtual memory deutlich weniger. übrigens kannst du auch nach purge noch inactive memory haben ;)

        purge schadet sicher mal nicht, aber es hat schon seinen grund, warum es früher nur mit xcode installiert wurde, es dient hauptsächlich für performance messungen.

        ganz allgemein hilft man seinem mac am meisten beim memory management, wenn genug memory in form von riegeln vorhanden ist :-)

        gruss,
        -lars.

        • Ich denke, dass wir durchaus das gleiche meinen, es aber unterschiedlich interpretieren. Wo wird denn deiner Meinung nach der disc buffer cache im Speicher (???) gehalten?

          Außerdem solltest du bedenken, dass nicht alle Apps so reagieren, wie Apple das gerne hätte. Hier n Bug; dort n anderer Fehler und schon wird das inactive memory/disc buffer cache nicht mehr freigegeben und kann durch andere Apps genutzt werden.

  4. du meinst vmtl in der hauptsache fehler, die man mit „memory leak“ umschreiben kann, oder?

    d.h. ein programm holt sich speicher (z.B. in C ) per malloc(), gibt diesen speicher aber nie per free() zurück, und das am besten noch in einer schleife.

    das problem an dieser art von fehlern ist, das kein OS der welt „wissen“ kann, ob ein programm diesen speicher wirklich braucht, oder ob es sich um einen bug handelt; daher wird die speicheranforderung immer erfüllt werden, solange möglich.

    bei diesen fehlern hilft dir purge original gar nichts, da diese anforderungen im active pool landen, oder wenn der bug geschickt angelegt ist, sogar im wired. dieser speicher wird nie inactive oder free, solange das programm ihn nicht wieder hergibt. Hier hilft einzig und alleine das betreffende programm abzuschiessen, notfalls mit gewalt, dadurch werden dann sämtliche vom programm belegten resourcen ans OS zurückgegeben.

    Wenn man dann will, kann man gerne purgen, dann wird die torte gleich wieder grün ;)

    ich will nicht nerven, aber es gab und gibt schon soviele memory optimizer, ob nun für mac oder win, deren einziger effekt es ist, den activity monitor oder taskmanager besser aussehen zu lassen und damit beim user ein warmes gefühl in der magengegend zu bescheren, während ihnen das geld aus der tasche gezogen wird. (ja, das purge hier kostet momentan nix, aber das wird nicht so bleiben)
    messbare performanceverbesserungen in real life situation (!) hat noch keines dieser programme gebracht, eher im gegenteil. und du wirst ja schon gemerkt haben, dass der purge aufruf eine zeitlang braucht zum aufräumen, spannend wäre, ob es os x nicht in der gleichen zeit alleine hinbekommt.

    • Hehe, passt schon. Genau dafür gibts ja Kommentare ;)

      Und ja, das meinte ich. Danke für deine zusätzlichen Erläuterungen.

  5. Ich hatte mich zu früh gefreut … seit dem das Tool läuft, geht eigentlich überhaupt nichts mehr. Der Beachball ist bei jedem Mausklick zu sehen.

    Habe ich irgendetwas nicht beachtet?
    Mac mini 8GB RAM Lion 10.7.3 …

    • Hmm, du ziehst deinem Mac natürlich den ganzen Cache leer, was nicht laufende App idR. nur langsamer starten lässt.

      Der Beachball ist allerdings ein Zeichen dafür, dass irgendwas anderes nicht stimmen kann. Ist in dem Fall schwierig da ne Diagnose zu stellen.

  6. Marco Hennig

    26.03.12, 22:51, #13

    Toll, jetzt bekommt der Mac-AppStore mit seiner breiten Öffentlichkeit also auch immer mehr „Memory Optimizer“, „RAM Doubler!!1elf“ und „Disk Optimizer“, um die man früher(TM) die Windows-Kollegen so beneidet hat… ;-p

    Es ist noch Schlangen-Öl da…