title image


Smiley Erklärungsversuche...
Auslagerungsdatei (Swap-Datei), Disk-Cache und Speicher ManagementDie Dokumentation zur Auslagerungsdatei und zum Disk-Cache ist in Windows eher mäßig. Im Resource Kit findet man zwar eine Auflistung der Einstellungen für System-Monitor, mit dem man Speicherbelegung prüfen kann, aber keine genaue Beschreibung. Wenn man den System-Monitor startet und sich den freien Speicher anzeigen läßt, stellt man fest (abhängig von Rechner-Konfiguration, Speicher, laufenden Hintergrund-Programmen), daß schon direkt nach dem Start von Windows die Größe des freien Speichers nahezu Null ist .Es stellen sich dann einige Fragen:- Wo ist mein freier Speicher geblieben? - ich habe so viel RAM, warum swapt Windows überhaupt?- Brauche ich bei (32, 64, ...MB) noch eine Swap-Datei? - Kann ich das Systemverhalten durch Änderung am Speichermanagement irgendwie verbessern?- Permanente Auslagerungsdatei: Ja oder Nein? - Wenn permanent, wie groß sollte meine Auslagerungsdatei sein? - Wie groß sollte der Disk - Cache sein?Als erstes muß man ein bißchen über das Speichermanagement von Windows wissen, um das "Verhalten" bezüglich des Speichers zu verstehen.a) Wenn ein 16-Bit Programm (DLL) gestartet wird, werden bestimmte Teile dieses Programms genau einmal ausgeführt, nämlich beim Start. Dieser Code bleibt nicht ständig im RAM, sondern wird später in der Auslagernungsdatei untergebracht. Auf diesen Code wird nie wieder zugegriffen.b) Wenn ein Programm Speicher reserviert (auf Englisch heißt das "committed", "reserved" hat eine andere Bedeutung! ), wird dieser Speicher nicht unbedingt sofort mit Daten gefüllt. Daher wird er nicht im RAM angelegt (vielleicht greift das Programm ja nie darauf zu) sondern in der Auslagerungsdatei. Erst wenn der reservierte Speicher mit Daten gefüllt wird, wird RAM dafür freigemacht.c) Die meisten Programme nutzen nur ganz bestimmte Teile der im Speicher befindlichen Daten ständig. Die Speicherverwaltung von Windows sorgt dafür, daß diese Abschnitte im RAM gehalten werden. Daten, auf die nur sehr selten zugegriffen wird, werden ausgelagert.Frage: Ist eine Auslagerungsdatei immer notwendig ?Antwort: Ja, man sollte auf jeden Fall eine Auslagerungsdatei haben (solange Festplattenplatz billiger ist als RAM). Wer meint, daß auf seinem System keine Auslagerungsdatei sein sollte, hat das Speichermanagment von Windows nicht verstanden. Statt Auslagerungsdatei auszuschalten kann man auch RAM ausbauen und das Swappen (innerhalb bestimmter Grenzen)wieder zulassen, das hat die gleichen ungünstigen Auswirkungen auf die Performance. Generell gilt: Die optimale Einstellung für alle Rechner gibt es nicht. Wenn man vermutet, daß man die Leistung seines Rechners durch manuelles Tuning des Speichermanagements verbessern kann, sollte man das System erstmal mit Hilfe des System-Monitors überwachen, der als Zubehör zu Windows mitgeliefert wird. Frage: Wie groß muß meine Auslagerungsdatei sein (wenn permanent)?Antwort: Genau zur Beantwortung dieser Frage gibt des den System-Monitor. RAM+Swap müssen so groß sein wie der maximal erreichte Wert von "Reservierter Speicher".Frage: Brauche ich nicht 2*RAM oder so als Swap-Datei?Antwort: Das mag eine gute Faustregel für Netzwerk Computer sein, für PC's gilt das nicht.Frage: Wie kann ich die Größe des Disk-Caches einstellen?In der SYSTEM.INI, Abschnitt [VCACHE], MinFileCache= Größe in KB, MaxFileCache=Größe in KBFrage: Sollte ich die Größe des Disk-Caches nach oben begrenzen?Antwort: Es ist nicht notwendig, aber wenn überhaupt, dann auf 4 MB. Disk-Cacheing ist die am meisten Performance steigernde Maßnahme überhaupt. Man kann sich allerdings darüber streiten, ob ein Disk-Cache von 8 oder 12 MB noch sinnvoll ist. Die dynamische Verwaltung des Disk-Caches sorgt ja dafür, das der Speicher durch den Cache nicht "verbraucht" wird. Eine generelle Empfehlung kann man nicht geben. Man müßte langfristig die Zahl der Cache-Hits messen. Es gibt aber einige Anhaltspunkte: 1. Wenn man ständig mehrere MB freien RAM-Speicher hat (bei fester Cache Obergrenze), sollte man den Cache wieder freigeben.2. Öffnet und schließt man oft Programme (auch wiederholt), sollte der Cache nicht begrenzt werden.3. Vermutlich hat MS zu dem Zeitpunkt, als die Kriterien des Speichermanagements festgelegt wurden, angenommen, daß 32 MB höchstens auf einem Netzwerkserver installiert wären. Daher der riesige Disk-Cache. Aber ob das wirklich schadet...Frage: Sollte ich die Größe des Disk-Caches nach unten begrenzen?Antwort: Nein. Da Windows den Cache sowieso erst dann ganz freigibt, wenn der Speicher bis zum allerletzten Bit gefüllt ist, macht es keinen Sinn die Cache-Größe nach unten festzusetzen.Wo soll die jetzt hin?Die Auslagerungsdatei von Windows im allgemeinen sollte nach Möglichkeit immer entweder an Anfang oder an Ende einer Partition gelegt werden. Das Verschieben der Auslagerungsdatei ist aber ohne Tools kaum zu bewerkstelligen. Einfach ist es z.B. mit den Norton Utilities (Defrag) möglich, wo man angeben kann, daß die Datei an den Anfang der Festplatte verschoben werden soll.Auch ohne diese Tools können Sie die Auslagerungsdatei auf eine andere Festplatte verlagern. Tragen Sie dafür in der SYSTEM.INI unter [386Enh] folgendes ein:PagingDrive=D:Mit den EintragPagingFile=D:\Swap.dddkönnen Sie auch noch einen anderen Namen festlegen.Was soll das bringen?Meistens bringt das einen besseren Zugriff auf die Swap-Datei , weil der Schreib-/Lesekopf dann weniger rotieren muß, das schont außerdem die Festplatte. Legt man die Auslagerungsdatei am Anfang der Festplatte, ist der Zugriff um ca 10% schneller im Vergleich zu Festplattenmitte, legt man die Swap-Datei am Ende der Festplatte steigert die Geschwindigkeit noch einmal um ca 10%. Außerdem sollte man darauf achten, daß Windows die Auslagerungdatei nicht zerstückelt, denn dann rotiert der Kopf natürlich noch mehr. Man sollte deshalb möglichst nach fast jeder Windows-Sitzung die Festplatten defragmentieren. Ich habe dafür aber sowieso eine extra Partition...Microsoft hatte mal eine Pressemitteilung ausgegeben , daß man nach Möglichkeit eine Swap-Datei auf derselben Partition anlegen soll, auf der Windows installiert ist , um einen besseren und schnelleren Zugriff zu haben. Der Grund liegt darin, daß Windows bei einer Extra-Partition ein Laufwerk mehr verwalten muß. aus WinFAQ 3.8 (www.winfaq.de), © 1996/99 by Frank Ullrich-----------------------------------Ein Wort zum Speichermanagement von Microsoft WindowsDie Betriebssysteme Windows95, Windows98 und WindowsNT von Microsoft haben alle eine ausgeklügelte Speicherverwaltung. Es ist jedem Programm möglich, mehr RAM zu benutzen, als der PC in Wirklichkeit hat. Dies ist deshalb wichtig, damit jeder Benutzer auch mehrere Programme gleichzeitig aufrufen kann. Die Bereiche des Arbeitsspeichers, die im Moment nicht genutzt werden, werden in die Auslagerungsdatei verlagert. So hat jedes Programm zugriff auf die Ressourcen, die es auch benötigt.Ein anderer wichtiger Aspekt ist, daß Windows teile der Festplatte im Arbeitsspeicher zwischenspeichert (Cache). Das beschleunigt den Zugriff auf die Festplatte ungemein, da eine Festplatte im Vergleich zum Arbeitsspeicher immer noch sehr langsam ist. Natürlich ist es nicht möglich, die gesamte Festplatte im Arbeitsspeicher zu halten, aber Windows versucht herauszufinden, welche Bereiche der Festplatte der Benutzer benötigt und versucht dann diese für schnellen Zugriff bereitzuhalten.Was geht schiefEs gibt vier Dinge, die schiefgehen können und dazu führen, daß das Speichermanagement versagt:· ProgrammfehlerHeute haben leider viele Programme einige Fehler. Auch das Betriebssystem selber ist nicht vor Fehlern sicher. Viele Leute glauben sogar, daß es unmöglich ist, fehlerfreie Programme zu schreiben. Die meisten dieser Fehler sind allerdings kein Problem. Der Benutzer bekommt Sie nie zu sehen. Allerdings kann es vorkommen, daß bei einem solchen Fehler ein kleiner Bereich des Arbeitsspeichers belegt bleibt, obwohl das Programm diesen Bereich nicht mehr benötigt. Dies ist deshalb schade, da Arbeitsspeicher eine wertvolle Ressource ist, die eigentlich nicht verschwendet werden sollte. Leider hat Windows keine Chance diese Fehler zu erkennen und muß deshalb weiterhin annehmen, daß dieser Bereich des Arbeitsspeichers benötigt wird.· Große BibliothekenViele Programme nutzen große Bibliotheken (DLL). Das macht es für Programmierer sehr leicht, tolle Programme zu schreiben, da sie nicht jedesmal das Rad neu erfinden müssen. Allerdings sind einige dieser Bibliotheken sehr groß und benötigen einen guten Anteil vom Arbeitsspeicher. Alle OLE Bibliotheken fallen zum Beispiel in diese Kategorie. Dieser Speicher wird dann belegt, obwohl er vielleicht gar nicht benötigt wird. Manchmal wird eine Bibliothek geladen, weil das Programm 2 oder 3 Funktionen daraus benötigt. Die Bibliothek bietet aber 100 Funktionen an und belegt auch dementsprechend Arbeitsspeicher.· Festplatten CacheWie oben schon beschrieben, ist der Festplatten Cache eine wichtige Sache. Ohne wäre der PC unglaublich langsam. Leider sind alle Windows Betriebssysteme nicht wirklich intelligent genug, herauszufinden, welche Dateien auf der Festplatte wirklich benötigt werden und welche nicht. Wenn eine Datei erst einmal im Arbeitsspeicher ist, weil ein Programm die Datei benötigt hat, wird die Datei für eine ganze weile im Arbeitsspeicher gehalten, obwohl das Programm diese nicht mehr benötigt. Insbesondere nach dem Kopieren mehrerer Dateien, sind oft große Teile des Arbeitsspeichers mit diesen Dateien gefüllt, obwohl klar ist, daß man gleich irgendwo anders weiterarbeitet. Nehmen Sie einmal an, daß Ihr PC 32MB Arbeitsspeicher besitzt und ca. 20 MB davon benutzt werden, um Dateien zwischenzuspeichern (Cache). Das führt dazu, daß nur noch 12 MB wirklich zur Verfügung stehen. Ist das der Grund, warum viele Leute 32 MB kaufen? · HintergrundprogrammeWindows ist in der Lage, mehrere Programme gleichzeitig auszuführen. Für den Benutzer ist das eine tolle Sache. Es ermöglicht sogar, daß einige Programme dauerhaft im Hintergrund arbeiten und dabei einen sinnvollen Service anbieten. Allerdings gibt es auch Programme, die nicht wirklich eine sinnvolle Aufgabe erfüllen. Diese Programme belegen dann eigentlich nur Arbeitsspeicher. Ein solches Programm ist zum Beispiel „Microsoft Office Schnellstart“. Dieses lädt einfach nur eine Reihe von Bibliotheken und macht ansonsten gar nichts. Eigentlich sollte das dazu führen, daß andere Office-Programme schneller starten sollen, aber der Effekt geht völlig verloren, wenn die Bibliotheken erst einmal in die Auslagerungsdatei verschoben sind und das passiert meistens schon während der PC startet.Was sollte man tunEs gibt einen einfachen Weg, die oben beschriebenen Probleme zu lösen. Einfach mal ein großes Programm aufrufen. Dieses wird dann große Bereiche des Arbeitsspeichers belegen und die unbenötigten Bereiche in die Auslagerungsdatei verschieben. Alle unbenötigten Bereiche befinden sich dann auf der Festplatte und verschwenden nicht mehr wertvollen Arbeitsspeicher. Allerdings ist nicht sichergestellt, daß das Schließen des großen Programms dazu führt, daß der Arbeitsspeicher auch wirklich freigegeben wird.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: