Tuning- und Tweaking-Mythen Teil II: RAM Tuning

Im zweiten Teil geht es um das RAM Tuning, welches ja auch oft wahre Wunderdinge verspricht. Mehr freier Speicher für Anwendungen, schnellere Zugriffe, weniger Abstürze.

7. Kernel Auslagerung abschalten.
Der Eintrag in HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management-->DisablePagingExecutive soll verhindern, dass Kernel Dateien auf die Platte ausgelagert werden und stattdessen ständig im RAM gehalten werden. Dummerweise handelt es sich bei dem Eintrag aber um einen Legacy Key, der seit NT4 SP3 nur noch aus Kompatibilitätsgründen in der Registry zu finden ist und der ansonsten genau gar keine Wirkung hat, wovon man sich mit einem Blick in den Taskmanger-->Systemleistung-->Kernel Speicher selber überzeugen kann. Egal, ob der Wert gesetzt ist oder nicht, es wird auf jeden Fall ausgelagert. Unter W2K ohne SP4 konnte es bei gesetztem Key sogar zum Abstürzen kommen, falls ein Treiber nicht sauber programmiert war. The DisablePagingExecutive Setting May Cause Windows 2000 to Hang)

8. Nicht benötigte DLL Dateien aus Speicher entfernen.
HKLM\SOFTWARE\Microsoft\ Windows\CurrentVersion\Explorer --> AlwaysUnloadDLL soll bewirken, dass beim Beenden eines Programms nicht mehr benötigte Dateien aus dem Speicher entfernt werden. Tut er bestimmt auch, jedenfalls wie Windows NT. Bei Windows 2000 und XP ist der Key wirklungslos, wie auch in einem Technet Artikel nachzulesen ist: Debugging with the Shell. Der wichtigste Satz daraus lautet: „For operating systems prior to Windows 2000, you can shorten the inactive period by adding the following information to the registry”. Ein schneller Test bestätigt auch, dass nach dem Setzen des Key auf keinen Fall mehr Speicher nach dem beenden eines Programms zur Verfügung steht als vorher.

9. System Cache beeinflussen.
Zwei Veränderungen im Schlüssel HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management, nämlich „LargeSystemCache“ und „IOPageLockLimit“ beeinflussen das Caching Verhalten von XP. Tun sie auch und kann sogar sinnvoll sein. Zumindest dann, wenn man einen Fileserver betreibt. Die Empfehlung, bei einer Workstation LargeSystemCache auf 2 und Size auf 3 zu setzen, führt zusammen mit der Veränderung des IOPageLockLimit dazu, dass das System mehr Speicher für Dateisystemoperationen reserviert. Dieser Speicher fehlt dann aber den Anwendungen. Ergebnis: Es wird mehr ausgelagert, das System wird langsamer. Details dazu finden sich z.B. in der Dokumentation zum W2K Ressource Kit Registry Reference LargeSystemCache“ Zitat: „Increasing the size of the file system cache generally improves server performance, but it reduces the physical memory space available to applications and services. Similarly, writing system data less frequently minimizes use of the disk subsystem, but the changed pages occupy memory that might otherwise be used by applications.”

10. System Page Table Entries erhöhen
Im bereits genannten Registry Key findet sich auch ein Eintrag namens SystemPages. Manche Quellen empfehlen, dort den Wert 0xFFFFFFFF einzutragen, was Windows anweist, das Maximum an PTEs innerhalb des verfügbaren Arbeitsspeichers anzulegen. Dadurch sollen bei großen Datei- und Speicheroperationen Abstürze vermieden werden. Davon mal abgesehen, dass ich bei XP noch nie abstürze bei solchen Vorgängen hatte, obwohl ich den Key nicht verändert habe, verweise ich wieder auf die MS Dokumentation: Registry Reference System Pages. Zitat: “Caution. Do not change the value of this entry. Changing it prevents the system from calculating an optimal value for your system and adjusting the value when your system changes”. Es ist also bestenfalls nutzlos, diesen Wert zu verändern.

11. Speicher aufräumen und defragmentieren.
Das ist einer meiner absoluten Lieblingstipps. Es klingt ja auch logisch und nachvollziehbar. Viel freies RAM ist gut und wenn es am Stück vorliegt, ist es noch besser. Schließlich will man ja sein Bier auch lieber aus dem Maßkrug anstatt aus 50 verteilten Schnapsgläsern genießen. Und so, wie man Festplatten defragmentiert, geht das bestimmt auch mir dem RAM. Dafür bastelt man sich eine VBS Datei mit einer einzigen Zeile „Mystring = (160000000)“. Um Speicher frei zu räumen, legt man sich ebenfalls eine VBS Datei mit der Zeile „FreeMem = Space(32000000)“ an. Was passiert nun bei Ausführung dieser beiden Dateien? Nichts. Weder wird mir im Taskmanager mehr RAM freies RAM angezeigt noch wird irgendetwas schneller. Wie denn auch? Das erste Visual Basic Script versucht, im RAM eine Variable von 160 MB Größe anzulegen, die dann sofort wieder beim Beenden des Programms gelöscht wird. Das zweite füllt eine Variable namens FreeMem mit einem String von 32 MB Grösse, die ebenfalls sofort wieder gelöscht wird. Was ist die Absicht dahinter? Sehr grob vereinfacht dies: Es wird möglichst viel Speicher belegt. Der Speichermanager teilt diesen auch zu. Zu Lasten anderer Programme, deren bisher genutzte Speicherseiten jetzt aus dem RAM in den Cache oder im Extremfall sogar in die Auslagerungsdatei verschoben werden. Will man also jetzt mit diesen Programmen weiterarbeiten, werden sie langsamer sein als vorher, weil erst die Daten vom Swap- in den Arbeitsspeicher geladen werden müssen. Dazu kommt, das diese „Aufräumaktionen“ völlig überflüssig sind, da der Speichermanager von Windows die Verwaltung weitaus effektiver vornimmt. Mark Russinovich, der Betreiber von Sysinternals und Autor im Windows 2000 Magazin hat in selbigem einen Artikel unter der Überschrift Schlangenöl für den Speicher veröffentlicht, den ich jedem nur empfehlen kann.

Genügend RAM gibts sowieso nicht

hi

ich nutz windows xp zwar nurmehr in der virtual machine.. und nutze als primäres betriebssystem windoof 7 64 bit (nur wegen spielen), mittlerweile hab ich 16 gb RAM - immer wieder verdoppelt halt - und er hat schon wieder teilweise Hänger, was aber auch kein wunder is da er nun schon etwa 60 tage durchläuft.
Mein Tipp bei lahmen kisten (die eigentlich schnell sein müssten)- mal wieder neustarten

Lili

Windows Speicher-Management

Sehr gelungener Artikel!

Ich finde die RAM-Tuning Aritkel auch immer sehr interessant bzw. amüsant und vor allem das Defragmentieren des RAMs! ;-)
Das Speicher-Management von Windows ist extrem gut und vor allem schon hochoptimiert.

Gruß Ole
Windows Software - Software rund um Windows

Tipp 10 nicht ganz richtig

Was du schreibst ist zwar richtig, aber du solltest nicht vergessen das es XP Rechner mit 256MB RAM heutzutage kaum noch gibt. Es ist richtig das man bei wenig RAM Probleme mit der Performace der Applikationen kriegt.
Es ist allerdings aber auch richtig, das man bei viel RAM (z.B. 2GB) einen spürbaren Performance-Schub kriegt auch wenn man keinen Fileserver betreibt, weil der Explorer einfach schneller läuft. Teilweise machts auch schon bei 1GB RAM Sinn.
Es soll laut Technet-Artikel möglicherweise Probleme mit Treibern geben, aber von denen hab ich bis jetzt nichts mitgekriegt und irgendwie kommts mir komisch vor den Server haben ja auch Treiber und da ist die Einstellung per Default gesetzt.

Mehr als 50% des Speichers kann Windows für Applikationen eh nicht nutzen. Wenn man LargeSystemCache und IOPageLockLimit nicht tuned und viel RAM hat kann man sicher sein, das die andere Hälfte auch nicht genutzt wird! XP tut's nämlich nicht, auch wenn man 4GB RAM hat.

Der Rest deiner Tips ist allerdings ok. Von diesen Werten sollte man die Finger lassen

WICHTIG !!!!

Habe eine Frage und zwar hab ich einen PC mit 4 GB Ram und TuneUP 2008 zeigt mir an das 2550 MB gebraucht werden. Ich kann dies aber noch bis auf 2999 hochschrauben. Wenn ich dies tue wird sich das dann negativ auf mein System oder ähnliches Auswirken?
Leider kann ich ja nich bis 4000 hochschrauben da ja XP 32bit das nich unterstützt =(
Danke schonmal im Vorraus

mfg er0x

Tipp 11

Mit der Zeile FreeMem = Space({1/2 * RAM} * 1000000) in einem VBScript kann ich mit Windows länger arbeiten. Weil der Speicher belegt und danach wieder freigegeben wird, können neue Programme erst ausgeführt werden. Dieser Trick half mir unter XP und ist unter Vista auch noch prktisch. Allerdings sei gesagt, dass das wirklich nur eine Notlösung ist, um einen Neustart zu verhindern, wenn das System nach einer Woche dauerbetrieb instabil wird. Der Windows Cache-Manager verschätzt sich leider immer noch und deswegen muss das System entweder neu gestartet, oder der Ram geleert werden. Ich empfehle jedem, der dies anzweifelt, seinen Computer nur auf Standby auszuschalten und viele Programme auszuführen, die Ram belegen. Selbst wenn man diese Programme schließt, erhält man eine sehr große Ram-Belegung im Task-Manager angezeigt. Zusätzlich wird neuen Programmen nicht mehr genug Ram zugeteilt, was bisweilen zu lustigen Fehlermeldungen führt. Wenn man dann aber ein solches Script ausführt, lässt sich der Computer wie nach einem Neustart ohne Probleme bedienen.

Wunschdenken?

Sorry, aber das ist absolut nicht nachvollziehbar. Meine Rechner werden im Allgemeinen nur am Patchtag neu gebootet, laufe entweder durch oder werden abends in Standby versetzt. Und es wird die ganze Zeit intensiv mit den unterschiedlichsten Anwendungen damit gearbeitet. Trotzdem habe ich solche Phänomene, wie du sie beschreibst, an keinem der Rechner unter XP oder Vista jemals erleben müssen.

Wenn das bei dir die Regel ist, dann arbeitet du entweder mit sehr kaputten Programme, die massive Speicherlecks aufweisen oder hast anderweitig in der Speicherverwaltung von Windows herumgebastelt.

MHF