• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

inaktiver speicher über 3/4 des gesamtspeichers???

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
ich hoffe wir sind uns alle darin ein, dass es vollkommen richtig ist, einen gewissen Teil des RAMS innaktiv zu lassen, obwohl andere Programme diesen RAM eventuell benötigen? Der Vorteil an dieser Geschichte ist nämlich, dass ein Programm sich nicht alle Ressourcen schnappen kann, denn RAM kann nicht so einfach verteilt werden wie CPU-Zeit ;)
Diesen innaktiven RAM kann man zb dazu verwenden, Hintergrunddienste, Services oder andere Programme, die man starten möchte, zu bedienen ;)
 

cut

Boskop
Registriert
23.12.07
Beiträge
213
ich hoffe wir sind uns alle darin ein, dass es vollkommen richtig ist, einen gewissen Teil des RAMS innaktiv zu lassen, obwohl andere Programme diesen RAM eventuell benötigen? Der Vorteil an dieser Geschichte ist nämlich, dass ein Programm sich nicht alle Ressourcen schnappen kann, denn RAM kann nicht so einfach verteilt werden wie CPU-Zeit ;)
Diesen innaktiven RAM kann man zb dazu verwenden, Hintergrunddienste, Services oder andere Programme, die man starten möchte, zu bedienen ;)

Klar. Ich sagte auch nie etwas gegen das generelle Speicher-Management von UNIX, warum sollte ich auch. Mir ist nur nicht verständlich, warum das System auf das Problem nicht selbst reagiert, wenn der User es jedoch eigenhändisch kann. So wie wenn z.B. ein Task abschmiert das System ihn notfalls beenden können sollte, sollte der Ram im Falle des Falles notfalls "zurückgesetzt" werden. Im Endeffekt geht es darum auch nicht, sondern um die dreisten Anschuldigungen - da das System ja perfekt laufe - man sich die Probleme einbilde oder ähnliches. Und die darauf folgenden absurden Analogien. Verursacht eigentlich durch nur einen Poster hier, dem - dafür, dass er konstruktiv wenig leistet - eindeutig zu viele Postings gewidmet werden. Deswegen ja die Bitte in #77, ob jemand etwas Konstruktives dazu sagen kann.
 

walksunix

Spartan
Registriert
06.08.08
Beiträge
1.608
ich hoffe wir sind uns alle darin ein, dass es vollkommen richtig ist, einen gewissen Teil des RAMS innaktiv zu lassen, obwohl andere Programme diesen RAM eventuell benötigen? Der Vorteil an dieser Geschichte ist nämlich, dass ein Programm sich nicht alle Ressourcen schnappen kann, denn RAM kann nicht so einfach verteilt werden wie CPU-Zeit ;)
Diesen innaktiven RAM kann man zb dazu verwenden, Hintergrunddienste, Services oder andere Programme, die man starten möchte, zu bedienen ;)

Hat er doch hier bereits erwähnt, dass das OS genau das nicht tut:

Der "inaktive" wird dabei nie freigeben, außer händisch per "purge" bzw. Scripts. Sobald der Speicher freigeben wurde, hängt das System kurz (3-4 Sekunden) und läuft danach einwandfrei.
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
nein, meine Aussage schließt seine Aussage nicht aus. Wenn du zb, 8GB RAM hast, hast du vlt so direkt nach dem booten 6 GB frei. Jetzt startest du ein Programm, was wirklich viel RAM verwendet. Das Speichermanagement ist dann so schlau und setzt erstmal 2 GB auf inaktiv und das Programm nimmt sich seine 4. Der Rest wird auf die HD geswappt. Diese übrigen 2 GB sind dann zwar innaktiv, werden aber für Prozesse reserviert, die eventuell nachgestartet werden, irgendwelche Hintergrundprozesse (ala mds oder anderen Dinge). Vlt benutzt das Programm Dienste, die noch gestartet werden müssen, etc...

Der zweite Hintergrund ist, dass es schon fast absurd ist, dass ein Programm die vollen 4 GB RAM benötigt und das jederzeit. Darum werden einfach Teile ausgelagert, wo das System meint, das Programm braucht sie sicherlich nicht (geht in C++ einfach zu beeinflussen, alles was tendenziell geswappt werden darf, landet sowieso auf dem Heap, alles zeitkritische aufm Stack und Stack kann nicht ausgelagert werden ;) ).

Und aus diesem Gründen kommt auch der Vorwurf an die Entwickler der Programme, weil die es wohl nicht für sinnvoll erhalten Cachingmechanismen einzubauen. Natürlich könnte man den kernel so umprogrammieren (geht sogar relativ einfach), dass er konsequent inaktiven Speicher freigibt, wo er gebraucht wird, jedoch wirste dann keinen Spaß daran haben, da selbst nach einem purge bekommt ein Prozess nicht gleich alles freigewordene zugewiesen, sondern wenn überhaupt einen kleinen Teil.

Wenn ich zb nahe der vollkommen RAM Auslastung komme, dann ist es nicht unüblich, dass mein inaktiver RAM von 700MB auf 2 GB springt. Ob jetzt 2 GB als Grenze ein akzeptabler Wert ist, sei erstmal dahingestellt, den Mechanismus finde ich aber erstmal sinnvoll. Apple denkt hier ja auch etwas mit und nicht alle Apple User lassen Programme laufen, die 4GB+ RAM benötigen ;)

Also einmal zusammengefasst: Der inaktive Speicher wird schon freigegeben, aber nicht an einen Prozess, der den ganzen RAM haben möchte, sondern an neuen Prozesse, die überhaupt erstmal starten wollen, weil bei 0MB free RAM starten und gleich alles zu spwapen => großes aua.
 

walksunix

Spartan
Registriert
06.08.08
Beiträge
1.608
Und aus diesem Gründen kommt auch der Vorwurf an die Entwickler der Programme, weil die es wohl nicht für sinnvoll erhalten Cachingmechanismen einzubauen.
Das hätte wohl gereicht ;) Du meinst wohl für sinnvoll halten.
Es wäre sicherlich besser, wenn sich ein Programm erst das Mininum an Speicher, den es benötigt, reserviert, etc. Damit nicht gleich alles verbraucht wird.
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
aber das machen doch Programme, aber meist gibt es da die JAVA Mentalität, was ich einmal habe, gebe ich nicht wieder her ;)