Trotz 640MB RAM nur 40MB frei bei nur mail offen??

  • Ersteller Sternenwanderer
  • Erstellt am
Sternenwanderer

Sternenwanderer

Aktives Mitglied
Thread Starter
Dabei seit
30.01.2004
Beiträge
2.337
Reaktionspunkte
18
Hi Leute,


wie kommts, das meine Aktivitätsanzeige mich glauben lassen will, das mein iBook mit 640 MB Ram bei nur einer Applikation geöffnet(mail) 560 MB RAM braucht?

Was soll das???

Ram-Baustein ist angeblich in Ordnung, mit Festplattendienstprog von "außen" mehrmals getestet...

Bringt es denn was, wenn ich mein 933 MHZ auf 1 GIG RAM WEITER AUFRÜSTE, oder müllt das System den Ram dann noch mehr zu?!

Danke für Eure Hilfe,

Grüße
 
hey sternenwandler
was hast du fuer eine aktivitaetsanzeige? versuchs mal im terminal mit "top". da hast du dann ganz oben die gesammte speicherauslastung und darunter noch die der programme und deren cpu verbrauch.

lg, joedelord
 
ich (auch 933er mit 640ram) hab grad getestet: safari, mail und adium läuft: 180mb frei, 220 inaktiv.

soll keine hilfe sein, nur ein vergleichswert...
b3c.
 
Mir ist das auch schon öfter aufgefallen bei meinem PB. Nur schaffe ich es sogar ohne nennenswerte Anwendungen meinen GB zu verbrauchen (wenn es mal ein paar Tage läuft). Nach nem Neustart ist dann wieder alles (~700MB) frei. Aber auch wenn ich nur mehr 10-100MB frei habe kann ich keine Performanceeinbußen bemerken.

MfG, juniorclub.

PS: vielleicht meldet sich ja der Herr .ut, der kann uns das sicher erklären. :p
 
Das liegt an der UNIX Speicherverwaltung. Ich weiß nicht genau ob im Lieferumfang von OS X das Unix Tool "top" mitgeliefert wird oder das Unix Tool "free". Wie dem auch sei, hier eine kurze Erläuterung dieses Umstandes:

Der Arbeitsspeicher ist nicht wirklich belegt. Er scheint belegt für Programme die nicht auf Unix Kernelfunktionen zugreifen um den freien Speicher zu ermitteln. Der Unix Kernel hat die äußerst vorteilhafte Angewohnheit freien Speicher im Hintergrund für schnelleren Zugriff zu cachen. Dieser Vorgang markiert den Speicher für von außen zugreifende Anwendungen jedoch als "belegt" - wenn der Unix Kernel jedoch eine Anwendung in den Arbeitsspeicher laden muss (dieser Vorgang wird immer vom Kernel durchgeführt) dann weiß er genau welchen Teil des Speichers er bereits gepuffert hat und benutzt nach Möglichkeit diesen Teil.

Das ganze lässt sich mittels mittlerweile erwähnter Tools "top" und "free" ermitteln, hier mal ein kleines Beispiel wie das der Linux 2.4 Kernel handhabt:

Code:
rezeption@debian:~$ free
             total       used       free     shared    buffers     cached
Mem:        378004     344388      33616          0      22404     225728
-/+ buffers/cache:      96256     281748
Swap:       975232          0     975232
rezeption@debian:~$

Ihr könnt erkennen, dass von den insgesamt 384MB Arbeitsspeicher (8MB Abzug für Shared Grafik) laut diversen Tools über 340MB belegt wären - tatsächlich aber von diesen 340 belegten ca. 220MB gepuffert und somit tatsächlich und für den Kernel frei sind.

PS @ ._ut:
Jetzt fällt mir wieder ein warum mir dein Benutzername im Gedächtnis geblieben ist, wir haben uns bevor ich mich hier im Juni aus dem Forum verabschiedet habe desöfteren als Unix Experten profiliert, war das nicht so? ;)
 
Zuletzt bearbeitet:
Freier Arbeitsspeicher ist kein Arbeitsspeicher.

Ommmmm....

Seid also froh, dass er in Gebrauch ist.

Gruß
GNUMac
 
...lol. :)


Danke für eure Antworten: ich hab n Neustart gemacht: hab sechs Progs offen und 344MB frei...

@D'Espice, ich habs definitiv nicht ganz gerafft, was du da vorbildlich exerziert hast....aber ich gebe die Hoffnung nicht auf :)
 
Ich weiß wirklich nicht wie man es noch leichter erläutern kann.... OS X benutzt den Speicher nicht wirklich sondern puffert ihn. Das bedeutet dass wenn tatsächlich Zugriffe darauf stattfinden diese deutlich schneller von Statten gehen als bei ungepuffertem Speicher. Dies geschieht vom Benutzer unbemerkt im Hintergrund womit logischerweise der Speicher voller erscheint nach zehn Stunden als direkt nach dem Neustart - auch wenn er es nicht wirklich ist.

Wenn jetzt ein Programm also abfragt wieviel Systemspeicher noch frei ist, dann ist dies ausschließlich der noch ungepufferte Teil des Arbeitsspeichers. Alles was gepuffert aber noch frei ist wird von OS X trotzdem als "belegt" markiert um den Puffermechanismus nicht durcheinander zu bringen. Somit wird der Speicher zwar als belegt angezeigt aber ist es nicht wirklich aus Sicht des OS X Kernels. Der tatsächliche freie Speicher lässt sich ganz einfach berechnen:

(Physikalisch vorhandener Arbeitsspeicher) - (Gemeldeter belegter Arbeitsspeicher) + (vom Kernel gepufferter Speicher) = tatsächlich freier Arbeitsspeicher

Um herauszufinden wieviel des Arbeitsspeichers tatsächlich gepuffert sind benötigt man Tools wie oben zitiertes "free". Noch leichter geht's wirklich nicht...
 
D'Espice schrieb:
Ich weiß wirklich nicht wie man es noch leichter erläutern kann.... OS X benutzt den Speicher nicht wirklich sondern puffert ihn. Das bedeutet dass wenn tatsächlich Zugriffe darauf stattfinden diese deutlich schneller von Statten gehen als bei ungepuffertem Speicher. Dies geschieht vom Benutzer unbemerkt im Hintergrund womit logischerweise der Speicher voller erscheint nach zehn Stunden als direkt nach dem Neustart - auch wenn er es nicht wirklich ist.

Wenn jetzt ein Programm also abfragt wieviel Systemspeicher noch frei ist, dann ist dies ausschließlich der noch ungepufferte Teil des Arbeitsspeichers. Alles was gepuffert aber noch frei ist wird von OS X trotzdem als "belegt" markiert um den Puffermechanismus nicht durcheinander zu bringen. Somit wird der Speicher zwar als belegt angezeigt aber ist es nicht wirklich aus Sicht des OS X Kernels. Der tatsächliche freie Speicher lässt sich ganz einfach berechnen:

(Physikalisch vorhandener Arbeitsspeicher) - (Gemeldeter belegter Arbeitsspeicher) + (vom Kernel gepufferter Speicher) = tatsächlich freier Arbeitsspeicher

Um herauszufinden wieviel des Arbeitsspeichers tatsächlich gepuffert sind benötigt man Tools wie oben zitiertes "free". Noch leichter geht's wirklich nicht...

...okok, jetzt ist es auch bei mir angekommen :D , vielen Dank auch :)
 
Zuletzt bearbeitet von einem Moderator:
Oberflächlich (d.h. für die Anzeige des freien Speichers) kommt es irgendwie auf das Gleiche raus, es passieren aber sehr unterschiedliche Dinge.

Übrigens unterscheidet die Aktivitätsanzeige zwischen aktivem und inaktivem Speicher.
 
._ut schrieb:
Oberflächlich (d.h. für die Anzeige des freien Speichers) kommt es irgendwie auf das Gleiche raus, es passieren aber sehr unterschiedliche Dinge.

Übrigens unterscheidet die Aktivitätsanzeige zwischen aktivem und inaktivem Speicher.


..hm; also wenn mir der DSP-Vertrieb sagt, ich bräuchte dann mehr Arbeitsspeicher, wenn mein freier PLatz die 100 MB unterscheidet, dann wäre das ja eine etwas irreführende Aussage...

...da ja der "freie" Platz ganz von der Betriebsdauer, so wie ich das jetzt verkürtzt verstanden habe-wegen swap-Dateien usw.-, des Rechner abhängt, kann ich die Zahl, die bei "Frei:" steht getrost vergessen, und sollte stattdessen eher nach dem "inaktiven" Speicher schauen??

p.s. was sind eigentlich swap-Dateien?
 
Swap-Dateien sind Dateien auf der Festplatte (/var/vm/swapfile0, swapfiel1 usw.), die sozusagen als Arbeitsspeichererweiterung genutzt werden.

Im inaktiven Speicher befinden sich durchaus valide Speicherinhalte. Auf diese ist aber seit einer gewissen Zeit nicht mehr zugegriffen worden (z.B. weil das entsprechende Programm zwischenzeitlich beendet wurde, aber auch, weil das Programm oder der entsprechende Teil des Programms lange nicht benutzt wurde), also ist es wahrscheinlich, dass dieser Platz verwendet werden kann, wenn neue Inhalte in den Speicher geladen werden.
Wirklich, d.h. aktuell, verwendet wird nur der reservierte und der aktive Speicher. Der Rest steht theoretisch zur Verfügung. Das kann sich aber sekündlich ändern, wenn z.B. aktiver Speicher deaktiviert wird, deaktivierter aktiviert wird oder ausgelagert etc..
 
Zurück
Oben Unten