Dumme Taskmanager/RAM-Fragen

  • Hi,

    Mal ein Noobie-Problem eines "sonstnichtnoob"s auf Windows:
    Ich arbeite eben an einer ziemlich grossen Scene in Maya 6. Ich habe 1GB RAM. In dem Moment in dem ich die frisch geöffnete Scenefile vor mir habe braucht der Prozess maya.exe ~332mb RAM. der nächstgrössere ist bereits Opeera mit nur 26mb. Alles in allem habe ich, wenn ich alle diese Werte bei "Speicherauslastung" zusammenzähle nicht mehr als etwa 450mb augelastet. Nur steht ganz unten im Fenster "Zugesicherter Speicher 745M", und das verstehe ich nun nihct so ganz. ;)
    Ich hab nun über Ansicht auch noch die Spalten "Maximale Speicherauslastung" und "Virtueller Speicher" erscheinen lassen. Die Maximale Speciherauslastung leuchtet mir ein, z.b. braucht winlogon.exe jetzt gerade 1008K und als maximum 18412K. Logisch.
    Aber was meint XP mit "Virtueller Speicher"? Das ist doch die auslagerung auf der HD oder? Aber wozu diese? maya.exe hat dort zum Beispiel ganze 380mb, aber warum? es hättenoch genug platz auf dem RAM, bez. wozu die Aufsplittung? Oder ist das garkeine?

    Ich frage deshalb, weil wenn ich nun die Scene mit Mental Ray rendern möchte, maya.exe sehr selstame verhaltensweisen bemerkbar macht. Erstmal wachsen die beiden Teile auf "Speicherauslastung" und "virtueller Speicher" relativ gleichzeitig an. Sobald der "zugesicherte Speicher ungefähr 1024 überschreitet, beginnt die HD zu arbeiten. Zu diesem Zeitpunkt hat maya.exe auf "Speicherauslastung" etwa 700mb. Doch plötzlich schrumpft es weg, wieder auf 200, und dafür ist der "virtuelle Speicher" von maya.exe etwa bei 1200. Zunemends wird die HD immer lauter, und nun, nach etwa 2 Minuten ist maya nochmkleiner geworden, und springt immer so zwischen 150 und 500 relativ unregelmässig hin und her.
    Wenn s'rendern fertig ist, hat Maya nur noch 63mb, viel weniger als am Anfang, dafür hat der "virtuelle Speicher" 400mb...

    Was passiert da genau, denn Maya wird mit rendern nur schwer fertig, und die HD rattert.... doch nicht etwa zu wenig Ram? :P

    Und noch eine Frage. Was meinen die Leute von Microsoft mit "Zugesicherter Speicher inder KArtei "Systemleistung"? Und was mit "Physikalischer Speicher"? Ich meine, ob HD oder RAM, ist ja beides Physikalisch.

    Eben, rechte Anfängerfragen :P

    Danke dennoch! ;)

    TB2


  • wenn du eine Applikation startest, übernimmt das WindowsSpeicherManagement die Zuteilung des Speichers, sowohl des Ram als auch des virtuellen Speichers.

    Windows ist darauf bedacht, das es zu keiner Auffüllung des RamSpeichers kommt, daher wird ausgelagert. Je nachdem wie du deinen Speicher konfiguriert hast, wird der entweder auf Hintergrunddienste oder Anwendungen gebunden.

    D.h.: Bei Hintergrunddiensten (Standardeinstellung) werden nahe zu alle Applikationen, die nicht aktiv mit dem User arbeiten (Rendern) in den Hintergrund gelegt und landen daher im virtuellen Speicher.

    Die Sprunghaftigkeit des belegten Speichers im Taskmanager ist ein Spiegelbild dessen, was dein Programm gerade angefordert hat, um etwaige Tasks durchzuführen. Daher kann es sein, das es plötzlich massiv zurückgeht, oder wenn der Speicher durch die Applikation wieder freigegeben wird.

    Bsp: UT2k4 vorher hast normale Speicherauslastung, nach Beendigung ist scheinbar mehr da, was daran liegt, das die Applikation Speicher angefordert hat und nachher diesen wirklich wieder freigibt und daher ist plötzlich wieder mehr da.

    00010011100010001010100111000
    {a,b,b} = { *tilt* } :ahhh:

  • Virtueller Speicher: Jedem Process wird (vom OS) ein Addressraum von einigen GB "vorgegaukelt"
    (typischerweise 2 GB)

    Normalerweise gibts eine Menge aktiver Prozesse, kaum eine Machine hat diesen Speicher tatsächlich
    (pro Task z.B 2 GB).
    Ganz abgesehen von der 32 (64) Bit Grenze .

    Daher heißt das virtueller Speicher.
    Das hat per se noch nichts mit dem Auslagerungsspeicher auf HD zu tun.

    Da allerdings das Grundprinzip lautet: Mehr Speicher vorgaukeln als vorhanden ist - machts wenig Sinn keine Maßnahmen zu treffen, wenn der physikalische Speicher tatsächlich ausgeht.
    -> Sprich Auslagerung auf HD/Swapping ist *Bestandteil* vom Prinzip "virtuellem Speicher"

    Virtueller Speicher ist trotzdem NICHT gleichzusetzen mit dem Speicher, der auf die HD ausgelagert wird.
    Auch wenn es sehr eng damit verbunden ist.
    Leider findet man solche falsche Definitionen/Vorstellungen häufig :(

    Im Detail ist das äußerst komplex und delikat :)
    -> Speichermangment einer modernen CPU und OS.

    Aber normerweise sind diese recht komplizierten Details irrelvant.

    (Außer man programmiert gerade sein eigenes OS,
    oder ist bedauernswerter Informatik Student vor diversen Prüfungen wo man das wissen sollte, etc,etc)

    Speicher, den ein Programm anfordert bzw benutzt ist immer "virtuell".
    Mit besseren Tools als der Standard Windows Task Manager kann man auch sehen, wieviel des gerade benutzen Speichers eines Prozesses im physikaleschen RAM liegt und wieviel auf davon auf HD ausgelagert ist. (falls überahupt)

    Hoffe, daß war einigermassen verständlich.

    Mfg, LB


    Trading for a living [equities,futures,forex]

  • Zitat


    Windows ist darauf bedacht, das es zu keiner Auffüllung des RamSpeichers kommt, daher wird ausgelagert.

    Ja, klar.
    Auf Teufel komm raus prinzipiell alles auslagern, HD ist ja soooo viel schneller als RAM.
    Nun gut, mit der Resource RAM schonend umzugehen könnte man als sinnvolle Aufgabe eines OS erachten.
    Aber die conclusio kann ich nicht nachvollziehen.
    Daher auslagern ?
    Alles auf HD auslagern und schon haben wir ein OS das quasi keinen Hauptspeicher benötigt
    Wow :)

    Erst auf HD auslagern wenn der physikalische Speicher voll ist oder zumindestens zum größtenteil könnte durchaus sinnvoll sein.


    Trading for a living [equities,futures,forex]

  • Zitat von Lord Binary

    Erst auf HD auslagern wenn der physikalische Speicher voll ist oder zumindestens zum größtenteil könnte durchaus sinnvoll sein.

    Einen Parameter haben die Vorredner - äh - Vorschreiber außer aucht gelassen: Den HD-Cache!

    Ein gewisser Teil des Speichers (kann man sicher auch rausfinden) wird als Festplatten-Cache verwendet / reserviert, eben weil der Speicher schneller als die Festplatte ist. Kann man irgendwo einstellen...

    Überhaupt kannst Du Dich mit den Parametern vom Virtuellen Speichermanagement ein bisserl herumspielen, wenns't mutig bist. Siehe Start -> Systemsteuerung -> System -> Erweitert -> Systemleistung -> Einstellungen -> Erweitert.

    Bei mir ist Prozessorzeitplanung für Programme optimiert, genau wie die Speichernutzung.

    Wennst sehr wahnsinnig bist und der Speicher sicher reicht, kannst hier auch "Keine Auslagerungsdatei" festlegen. Probier's mal aus, bin gespannt was passiert ;)

  • Zitat von Lord Binary

    Mit besseren Tools als der Standard Windows Task Manager kann man auch sehen, wieviel des gerade benutzen Speichers eines Prozesses im physikaleschen RAM liegt und wieviel auf davon auf HD ausgelagert ist. (falls überahupt)

    Systemsteuerung -> Verwaltung -> Leistung

    Dort auf + klicken, Datenobjekt=Speicher, und nach belieben herumspielen.

  • Zitat


    Systemsteuerung -> Verwaltung -> Leistung


    Zeigt das nicht die diverstesten Werte der Speicherverwaltung/auslastung/ GLOBAL an ?
    Insbesondere nicht per Application/Process ?
    Wieviel Speicher z.B maya.exe benötigt wird man da schwer ablesen können ???!!!!


    Trading for a living [equities,futures,forex]

  • Ok, Danke, das hat einiges geklärt! :)

    Jezt spiel ich mich eben mit dem Systemsteuerung/Verwaltung/Leistung-Fenster, und habe unter +/Datenobjekt/Speicher den Punkt "Cachefehler/s" hinzugefügt. Nun, kann mir jemand erklären, weshalb ich im Durchschnitt 580 Cachefehler/s haben soll :ahhh:? Ist das nicht ein bisschen massiv?

  • hallo!

    hier sind noch ein paar zusätzliche Antworten falls es jemanden interessiert:

    Zitat von TB2

    Aber was meint XP mit "Virtueller Speicher"? Das ist doch die auslagerung auf der HD oder?


    Nein. Virtueller Speicher = Physischer Speicher + Auslagerungsdatei. Eigentlich ist virtueller Speicher ein eingebildeter Speicherbereich (4GB ab einem 80386+), in den der physiche Speicher gemappt wird.

    Zitat von TB2

    Ich frage deshalb, weil wenn ich nun die Scene mit Mental Ray rendern möchte, maya.exe sehr selstame verhaltensweisen bemerkbar macht. Erstmal wachsen die beiden Teile auf "Speicherauslastung" und "virtueller Speicher" relativ gleichzeitig an. Sobald der "zugesicherte Speicher ungefähr 1024 überschreitet, beginnt die HD zu arbeiten. Zu diesem Zeitpunkt hat maya.exe auf "Speicherauslastung" etwa 700mb. Doch plötzlich schrumpft es weg, wieder auf 200, und dafür ist der "virtuelle Speicher" von maya.exe etwa bei 1200. Zunemends wird die HD immer lauter, und nun, nach etwa 2 Minuten ist maya nochmkleiner geworden, und springt immer so zwischen 150 und 500 relativ unregelmässig hin und her.

    Was du da erlebst, ist, dass besonders viele Seiten des Maya-Prozesses ausgelagert werden, weil du ein Fenster eines anderen Prozesses aktiviert (und evtl Maya minimiert?) hast.

    Zitat von TB2

    Und noch eine Frage. Was meinen die Leute von Microsoft mit "Zugesicherter Speicher inder Kartei "Systemleistung"? Und was mit "Physikalischer Speicher"? Ich meine, ob HD oder RAM, ist ja beides Physikalisch.

    Mit "physikalisch" ist immer RAM gemeint. Weil das auf den Festplatten ja kein richtiger Speicher ist, sondern nur eingebildeter ;) Was natürlich Ansichtssache ist... "Zugesichert" heißt, ein Prozess hat die Systemroutine VirtualAlloc() oder eine ihrer Freundinnen aus der kernel32.dll aufgerufen und im Gegenzug einen Zeiger auf einen Speicherbereich erhalten, den nur er selbst verwenden darf. Ob der Prozess den Speicher nun verwendet oder nicht, ist eine andere Sache. Jedenfalls ist er nicht mehr frei.

    Eine Anmerkung zum Schluss: Windows wird immer freien Speicher als File-Cache verwenden, natürlich erst dann, wenn etwa eine Applikation gestartet wurde. Den Unterschied merkt man, wenn man mit 128 MB RAM und dann mit 512 MB RAM mehrmals hinterander eine Anwendung startet. In den meisten Systemen wird daher nur kurz nach dem Start wirklich viel Speicher frei sein. Linux geht hier übrigens ganz ähnlich vor, wenn man den Performance-Countern in meiner Gnome-"Task-Leiste" glauben darf.

    Zitat von TB2

    Eben, rechte Anfängerfragen :P


    Naja.. 9 von 10 Anfängern fragen was leichteres... :p

    Lg Michi

  • Zitat von TB2

    Jezt spiel ich mich eben mit dem Systemsteuerung/Verwaltung/Leistung-Fenster, und habe unter +/Datenobjekt/Speicher den Punkt "Cachefehler/s" hinzugefügt. Nun, kann mir jemand erklären, weshalb ich im Durchschnitt 580 Cachefehler/s haben soll :ahhh:? Ist das nicht ein bisschen massiv?


    ähm, ich hab zwar nirgends windows installiert, sodass ich leider nicht nachprüfen kann, von welchem cache hier die rede ist, aber ich vermute mal, dass "cachefehler" die sehr unglückliche übersetzung von "cache miss" ist. Ein cache miss hat aber nichts mit "hardwarefehler" oder dergleichen zu tun, sondern beschreibt lediglich die tatsache, dass irgendein subsystem daten angefordert hat, die in dem entsprechenden Cache(level) nicht drin waren, deshalb muss auf die nächste ebene in der speicherhierarche zurückgegriffen werden....

    wenn du den betreffenden cache nicht vergrößern kannst (weils z.b. ein hardware cache ist, wie etwa der l1 cache deiner cpu), dann kannst du nichts machen, dann liegt es an der software (es gibt diverse optimierungstechniken wie strip mining, loop skewing uvm., um die cache utilisation zu erhöhen)...

    aber 580 misses pro Sekunde kommen mir eigentlich nicht nach besonders viel vor, schon garnicht für eine 3D Anwendung, wo datenzugriffe oft lücken aufweisen...

  • Zitat von gck

    ähm, ich hab zwar nirgends windows installiert, sodass ich leider nicht nachprüfen kann, von welchem cache hier die rede ist, aber ich vermute mal, dass "cachefehler" die sehr unglückliche übersetzung von "cache miss" ist.


    auch wenn du es hättest, wärst du nicht auf anhieb viel schlauer :verycool: ms gibts sich ja alle mühe, die wahre bedeutung der schwarzen zeichen in den grauen fensterchen zu verbergen. ich glaube aber, vor einiger zeit gelesen zu haben, dass es sich bei den cachefehlern um cache-misses aus dem file-cache handelt, was die hohe zahl besser erklären würde. leider finde ich den link im moment nicht, sorry :( sollte aber irgendwo auf den ersten google-seiten sein.. muss leider schon weeee°`'

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!