• Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

3 GB RAM inaktiv von 8 GB - abstellen?

magga

Neuer Berner Rosenapfel
Registriert
27.08.10
Beiträge
1.971
Nabend

Ich hab mich gerade etwas gewundert.

Ich bin gerad' ein paar Bilder am bearbeiten, mach Photoshop zu, und siehe da, dass mehr als 3 GB RAM inaktiv sind.
Dacht Ich mir - Warum hab Ich mir vorgestern eigentlich extra 8 GB Arbeitsspeicher eingebaut? :-/

Hab dann mal ein wenig gegoogelt und bin auf ein Support Dokument von Apple selbst gestoßen in dem es heißt:
Inactive memoryThis information in memory is not actively being used, but 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. This 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 Mail from the slower hard disk.


Nun, dass ganze mag ja echt super sein, eins dieser 'awesome features' wie Apple immer sagt - aber Ich brauche diesen RAM halt im moment, und der Mac fängt schon an zu swappen und Seitenauslagerungen anzulegen trotz diesem Satz: 'This Inactive memory is available for use by another application'.


Kann dieses Feature nicht für eine Zeit lang austellen?

MacBookPro 8,1 - 10.6.8

Bildschirmfoto 2011-08-22 um 22.30.04.jpg
 
Wegen ganzen 3 MB Swap? Das Memorymanagement von Mac OS X ist sehr gut; und wenn du mal das Bedürfnis hast, deinen Speicher durchzupusten gibt ins Terminal ein:

Code:
purge

(Seit Lion sogar ohne Developer Tools nutzbar.)
 
  • Like
Reaktionen: magga
Hallo!

Du schreibst leider nicht, welches Mac OS und welche PS-Version Du benutzt. Könnte für die Beantwortung Deiner Frage wichtig sein.

Inaktiver Speicher wird vom Memory Management sofort für die allgemeine Verwendung freigegeben, wenn eine Applikation Hauptspeicher anfordert. Du kannst aber händisch ein wenig nachhelfen. Je nachdem welches Mac OS Du laufen hast, sind die Vorraussetzungen etwas anders. Bei (Snow) Leopard müssen die Development Tools (sprich Xcode) installiert sein, der Löwe bringt das schon von Haus aus mit. Gib mal im Terminal den Befehl
Code:
purge
ein. Dieser Befehl gibt den inaktiven Speicher (so weit wie möglich/nötig) frei; aber, wie schon geschrieben, eigentlich macht das Memory Management das, wenn Bedarf besteht, eigenständig.


Edith flüstert: *grummel*, zu viel nebenbei gemacht, aber dafür ausführlicher beschrieben... ;-)
 
  • Like
Reaktionen: magga
Ihr habt schon Recht, aber warum wird der Swap verwendet?
 
@ImperatoR: Ja, wegen den ganzen 3 mb - da aus denen gestern ohne mich zu fragen ganze 1,4Gb wurden, und Ich mein MacBook beinahe kaputt gekloppt hätte.

@VisiNOIR: Also bei mir steht da oben: MacBook Pro 8,1 10.6.8 - ;-) PS ist 5,1.
Hab jetzt einfach mal neugestartet, mach Ich dann beim nächsten mal! Danke!

Aber anscheinend klappt das Management-System ja nicht einwandfrei - es würde ja eher den Speicher freigeben als zu Swappen oder? :-/
 
Wie der ImperatoR schon schrieb, 3MB Swap, who cares? Bei 300MB würde ich anfangen, mir sorgen zu machen.

Und rein aus Interesse habe ich gerade die Aktivitätsanzeige gestartet. 12GB RAM, 3,4GB inaktiv, 1,8GB Swap. DAS sind Probleme... ;-) (Oh man, warum hab' ich da blos rein geguckt, selbst das "Purgen" ändert nicht wirklich viel daran. Watt macht der Löwe blos da?!)
 
Wie der ImperatoR schon schrieb, 3MB Swap, who cares? Bei 300MB würde ich anfangen, mir sorgen zu machen.

Und rein aus Interesse habe ich gerade die Aktivitätsanzeige gestartet. 12GB RAM, 3,4GB inaktiv, 1,8GB Swap. DAS sind Probleme... ;-) (Oh man, warum hab' ich da blos rein geguckt, selbst das "Purgen" ändert nicht wirklich viel daran. Watt macht der Löwe blos da?!)

Lach, was hast du denn alles offen? :-p
 
Swap kann man ausstellen:

Code:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

und wieder an:

Code:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Wenn dein Arbeitsspeicher voll ist und kein Swap mehr gemacht werden kann, können halt Programme, Bibliotheken, Dateien nicht mehr geladen werden. Bei 8 GB wird das wohl weniger eintreten, aber wenn es eintritt, weißt du wo du suchen musst.

Das Problem beim inaktiven Speicher (wohl auch eine Art Cache, zumindest gibt es das bei Linux) ist, dass wenn du ein Programm hast, welches durch einen Speicherfreigabefehler den Speicher zu müllt landet es im inaktiven Speicher und da das Programm gnadenlos weiter Speicher auffrisst und das System nur noch damit beschäftigt ist, den alten inaktiven Speicher freizuräumen für den nächsten (temporären) Datenmüll frei zu räumen, wird das System stark ausgebremst. Es gerät dadurch in Trashing, jedoch ist das nicht das Problem des Betriebssystems, es macht ja alles korrekt und würde im Normalfall nicht gebremst werden und ein solcher Cache kann eben auch zur starken Beschleunigung dienen.
Anekdote: Das o.g. Verhalten, hatte ich mal bei einem Release von VLC, er hat den Film abgespielt aber nicht mehr aufgeräumt und nach einigen Minuten (wohl etwa 30) fing der Film an extrem zu stocken (wegen dem Trashing). Kurz purge eingegeben und dann konnte man wieder 30 Minuten flüssig schauen.

Gegen dieses Problem kannst du dich mit dem Abschalten des Swap nicht wehren, aber bei normalen Verhalten sollte er auf jeden fall erst den inaktiven Part anknapsen. (Er wird allerdings schon seine Gründe gehabt haben, warum er etwas geswapped hat.)
 
Ich lasse Ihn vorsichtshalber mal an, und wenn wieder so viel Inaktiver Speicher da ist, werde ich "purgen".

Aber Danke für deine ausführliche Erklärung! ;-)
 
Lach, was hast du denn alles offen? :-p
Safari hatte knapp 5GB RAM in Beschlag genommen, der Rest war "Kleinscheiss", nicht der Rede wert. Safari beendet und neu gestartet, schon sieht die Zusammenfassung in der Aktivitätsanzeige wesentlich freundlicher aus.
 
Hab gerade 1,49GB inaktiven RAM - Habe dann das Terminal(.app) geöffnet, und "purge" eingeben, und enter gedrückt es kommt:

Bildschirmfoto 2011-08-23 um 01.36.15.png

Was mache Ich da falsch?

:-/
 
Ich habe Xcode auf meinem Mac - ist das das richtige?
 
Nicht benutzter RAM ist verschenkter RAM.
Inaktiver RAM ist in erster Linie sinnvoll.
Erst wenn dieser inaktive RAM bei Bedarf nicht freigegeben wird, sollte man sich Gedanken machen.
Jetzt sollte man das Programm/ den Prozess suchen, der den RAM fest umklammert hält.
Mit purge oder Tools, die den inaktiven RAM leeren, löst man das Problem nicht und auch das deaktivieren des Swaps löst es in keinster Weise.
 
Wenn ein Programm crap (hat Speicherlecks) ist, dann ist purge immerhin eine temporäre Lösung.
 
Das ist schon klar, aber für eine dauerhafte Lösung des Problems ist weder purge noch ein Neustart und dann schon gar nicht ein Ausschalten des Swaps der Weisheit letzter Schluss, da ist dann Suche angesagt, unter Lion z.B. ist Safari und der WebProcess immer für eine Überraschung gut, welcher Prozess denn da nun so vermurkst ist, das er nicht befriedigend arbeitet.
 
Wenn ein Programm crap (hat Speicherlecks) ist, dann ist purge immerhin eine temporäre Lösung.

Eine Applikation mit Speicherleck belegt aber 'aktiven' Speicher und keinen 'inaktiven'. Es ist ja gerade des Wesen eines Speicherlecks, dass eine Applikation erzeugte und nicht mehr benötigte Objekte nicht selbst zerstört bzw. dem OS als 'zu zerstören' kenntlich macht.
 
und wenn dabei Systemressourcen reserviert werden, die dem kernel oder dem OS an sich gehören?

Wenn man zb an einen MySQL Server anmeldet, aber nicht abmeldet, werden auf dem Server Ressourcen reserviert, die erst dann freigegeben werden, wenn der Server einen Connection-Timeout erkennt. Komisch hier verursacht ein Client einen Speicherleck, der aber nur auf dem Server zu sehen ist, wirklich merkwürdig, dass er nicht beim Client auftaucht, oder?
 
Mal eine ganz doofe Frage: Hast du denn spürbare Performanceprobleme, oder stört dich nur generell die Tatsache, dass er swapt?