다음을 통해 공유


Unter der Haube von ReadyBoost

Eine aktuelle Suche mit Live Search zeigt 55.331 Ergebnisse zum Begriff "ReadyBoost". Da ich häufig Fragen im Zusammenhang mit Windows ReadyBoost gestellt bekomme, versuche ich an dieser Stelle einmal, ein wenig Licht in die Technologie dahinter zu bringen und mit einigen Mythen aufzuräumen. ReadyBoost ist kein zusätzlicher virtueller Arbeitsspeicher für den Computer. Da USB-Sticks oder SD-Karten im laufenden Betrieb entfernt werden können, macht es auch keinen Sinn, den Speicher als Hauptspeicher adressieren zu können. Flashspeicher ist auch wesentlich langsamer im Vergleich zu DRAM. 

ReadyBoost nutzt Flashspeicher als einen zusätzlichen Puffer für die Auslagerung von Speicherseiten. Sinn und Zweck ist der schnellere Zugriff auf häufig verwendete Speicherseiten durch die deutlich geringere Latenz von Flashmedien im Vergleich zu Festplatten. Dabei wird nicht die gesamte Auslagerungsdatei auf den Flashspeicher kopiert, sondern nur häufig benutzte Speicherseiten zusätzlich im ReadyBoost-Cache vorgehalten.

Windows Vista nutzt dafür eine Neuerung namens Windows SuperFetch. SuperFetch analysiert im Hintergrund die Hauptspeicherbenutzung des Computers durch den Anwender. Speicherseiten, die regelmäßig benötigt werden, kann SuperFetch im Hintergrund schon in den Hauptspeicher vorladen (Proactive Memory Population), so dass sie sofort zur Verfügung stehen, wenn der Anwender die entsprechende Anwendung benutzen möchte. Dadurch verbessert sich die Antwortzeit des Computers, da die Ladezeiten von Programmen zum Beispiel drastisch verringert werden können.

Das ist übrigens auch ein Grund für den scheinbar drastisch gestiegenen Speicherbedarf von Windows Vista: Vista nutzt vorhandenen Arbeitsspeicher im Vergleich zu Windows XP besser als Cache aus. Warum das einige "Experten" so stört, wird mir nicht klar. Bei einem Prozessorcache fragt sich auch keiner, wieviel denn davon benutzt wird. Ganz im Gegenteil: Wir erwarten, dass größere 1st, 2nd und 3rd Level Caches mehr Performance ermöglichen. Nur beim Hauptspeicher scheint es einigen wichtig zu sein, dass davon möglichst viel *nicht* benutzt wird. Das macht für mich keinen Sinn.

Mit SuperFetch weiss Vista, welche Speicherseiten oft benötigt werden. Mit Windows ReadyBoost & ReadyDrive können diese Speicherseiten dann von SuperFetch zusätzlich auf Flashspeicher abgelegt werden. ReadyBoost nutzt dazu einen speziellen Algorythmus, welcher die Schreibzugriffe auf den Stick minimiert und die Zugriffe gleichmäßig über den gesamten, an ReadyBoost zur Verfügung gestellten Platz, verteilt. Damit wird die Lebensdauer des Flashspeichers nicht signifikant verringert. ReadyBoost komprimiert zusätzlich die zu speichernden Daten, so dass mehr als der physikalisch zu Verfügung stehende Platz genutzt werden kann. Die Daten werden weiterhin automatisch verschlüsselt gespeichert (AES-128), so dass die ReadyBoost-Datei keine externe Absicherung benötigt.

Für ReadyBoost können USB-Sticks, SD- und CF-Karten sowie Memory Sticks über PCI, PCIe und SSA Busse genutzt werden. Faktisch können damit nahezu alle internen Kartenleser von Notebooks benutzt werden, mit Ausnahme von extern über USB angeschlossenen Lesegeräten sowie internen Lesern, die über USB 1.0 oder USB 1.1 angeschlossen sind.

Weitere Eckpunkte für ReadyBoost:

  • Die Größe der ReadyBoost-Datei kann von 230 MB bis zu 4 GB reichen.
  • Microsoft empfiehlt ein Verhältnis von 1:1 bis maximal 3:1 zwischen ReadyBoost Cachegröße und Hauptspeicher (RAM) für optimale Performancevorteile.
  • Der Flashspeicher muss als Mindestanforderung 2,5 MB/s random 4K reads und 1,75 MB/s random 512K writes über die gesamte Größe (!) unterstützen.
  • Für die "enhanced for ReadyBoost" Bezeichnung liegen die Anforderungen höher: 5 MB/s random 4K reads und 3 MB/s for random 512K writes.

Die Geschwindigkeit des Flashspeichers kann auch mit Boardmitteln getestet werden. Allein die Angaben auf den Flashspeichern selbst sind dafür nicht aussagekräftig genug. Das Ergebnis in der GUI ist jedoch binär: ReadyBoost ist entweder möglich oder nicht. Wer wissen will, warum sein Gerät den Test nicht bestand, kann in der Ereignisanzeige nach Event 1005 ("Das Gerät ... wird nicht für einen ReadyBoost-Cache verwendet, da...") Ausschau halten.

Wer seine Flashspeicher selbst testen möchte, kann die Performancedaten über WinSat ermitteln. Windows Vista liefert dazu Winsat.exe mit, welches aus einer Eingabeaufforderung als Administrator aufgerufen werden muss:

  • Random 4K reads: winsat.exe disk –read –ran –ransize 4096 –drive E
  • Random 512K writes: winsat disk –write –ran –ransize 524288 –drive E

Der Laufwerksbuchstabe des Flashspeichers muss dabei ohne Doppelpunkt angegeben werden - in meinem Beispiel ist das Laufwerk der Buchstabe E. Der erste Test geht ziemlich schnell - der zweite dauert ein wenig länger. Anbei die Beispielausgabe einer SD-Karte in meinem Notebook:

C:\Windows\system32>winsat.exe disk –read –ran –ransize 4096 –drive E
Windows-Systembewertungstool
> Wird ausgeführt: Funktionsaufzählung v1.0.0.0 ''
> Laufzeit 00:00:00.56
> Wird ausgeführt: Speicherleistungsbewertung mittels Profilerstellung v1.0.0.0 '–read –ran –ransize 4096 –drive E'
> Laufzeit 00:00:06.63
> Datenträgerleistung 2.74 MB/s
> Gesamtausführungszeit 00:00:07.58

Über die Ereignisanzeige kann man sich auch alle ReadyBoost-relevanten Ereignisse gefiltert darstellen lassen. Dazu geht man in der Ereignisanzeige auf Anwendungs- und Dienstprotokolle > Microsoft > ReadyBoost. Dort findet man eine Reihe von Einträgen rund um ReadyBoost. Windows Vista protokolliert auch die Nutzung des ReadyBoost-Caches mit und erstellt regelmäßig Statistiken. Anbei einmal die letzte von meinem Computer:

Event 1015

Zusammenfassung der ReadyBoot-Leistung:
Anzahl E/A-Lesevorgänge: 23144
KB der E/A-Lesevorgänge: 419955
Anzahl Cachetreffer: 9589
Cachetreffer-KB: 194592
Cachetreffer-Prozentwert: 41.4319045973038
Cachefragmentierung: 7.83384753249513
Größe der komprimierten Daten in KB: 268771
Größe der Rawdaten in KB: 418644
Komprimierungsverhältnis: 1.55762340431073
Cachegröße in KB: 278455
Startabrufzeit: 36079564
Startabrufbytes Lesevorgang: 303685632
Startzeitstempel (UTC): 16.01.2007 08:35:18
Letzter Startplan-Zeitstempel (UTC): 15.01.2007 12:16:38
Letzter Startplan-Zeitstempel (lokal): Mo, Jan 15 07, 01:20:36

Windows ReadyBoost verbessert in Zusammenarbeit mit Windows SuperFetch also primär die Antwortgeschwindigkeit des Rechners angepasst an die spezifische Nutzung durch den Anwender. Windows ReadyDrive geht noch einen Schritt weiter. Da hier der Flashspeicher fest in der Festplatte eingebaut ist, kann er neben dem Cache für SuperFetch auch zu weiteren Zwecken genutzt werden. Eine Möglichkeit ist ein erweiterter Write Cache, damit die Festplatte bei Laptops im mobilen Betrieb nicht für jeden Schreibvorgang anlaufen muss oder auch die Ablage von Programm-spezifischen Daten durch den OEM. Weitere Informationen findet man im Whitepaper Windows PC Accelerators und in der ReadyBoost Q&A von Tom Archer, der Matt Ayers, den für ReadyBoost verantwortlichen Program Manager aus der Microsoft Windows Client Performance Group, interviewt hat.

Comments

  • Anonymous
    January 17, 2007
    Vielen Dank für die wirklich ausführliche Erklärung. Daumen hoch! Gruß, Kai

  • Anonymous
    January 17, 2007
    Vielen Dank, das ging ja super schnell. Zwei Daumen hoch. Mittags gefragt und abends die Antworten. Einfach super, bis zum nächsten Mal Grüße Harald Scholl

  • Anonymous
    January 18, 2007
    Danke für die Information! :) Sehr schöner Kommentar übrigens zur Auslastung des Speichers! Ich denke das viele Leute Angst haben, Windows könnte zuviel Speicher verbrauchen und es bleibt nichts mehr für irgendwelche Anwendungen über...

  • Anonymous
    January 18, 2007
    Wie gewohnt angenehm hohe Informationsqualität. Vielen Dank! Gruß, Robert

  • Anonymous
    January 19, 2007
    Super! Was ich aber nicht verstehe, warum ist meine IBM X60s-CoreDual mit 1GB-RAM unter Vista mit diese „Newest Technology“ so lahm ist in vergleich zu XP auf den gleichen HW? Gruß. Mike.

  • Anonymous
    January 19, 2007
    The comment has been removed

  • Anonymous
    January 19, 2007
    @Mike: Gefühlte Geschwindigkeit ist immer so eine Sache. Ich persönlich kann diese Meinung mit der RTM-Version nicht bestätigen.

  • Anonymous
    January 19, 2007
    @Davide Russo: Nicht jeder kauft sich aber sofort einen neuen Recner mit 2 GB RAM. Was ist mit Rechnern, die sich z.B. nicht aufrüsten lassen? Es gibt durchaus Desktops und vor allem Laptops, die sich nicht so einfach mit mehr Speicher versehen lassen können. Dafür ist ReadyBoost (auch) gedacht.

  • Anonymous
    January 24, 2007
    The comment has been removed

  • Anonymous
    January 24, 2007
    @Frank: Siehe meine Antwort an Mike - gefühlte Geschwindigkeit ist immer so eine Sache. Ohne genauere Angaben ist die Aussage schlicht wertlos. Übrigens steht in der aktuellen c't, dass bei deren Geschwindigkeits- und Kompatibilitätstests auf der RTM-Version die meisten Anwendungen "problemlos und ungefähr so schnell wie unter XP" laufen.

  • Anonymous
    January 25, 2007
    The comment has been removed

  • Anonymous
    January 30, 2007
    Unter Vista gibt es einige nette neue Features. Besonders gefällt mir SuperFetch und auch ReadyBoost ist eine gute Sache. Vereinfacht ausgedrückt merkt sich Windows durch SuperFetch, welche Anwendungen der Benutzer besonders häufig nutzt

  • Anonymous
    January 30, 2007
    Hallo, eine gute deutsche Zusammenfassung der Informationen über Readyboost. Meine eigenen Erfahrungen sind übrigens in einem Punkt anders gewesen: Mit einem schnellen USB 2.0-Kartenleser ist es möglich, Readyboost auch am USB-Kartenleser mit SD-Karten zu benutzen. Getestet wurde mit dem Hama 1000&1 und Transcend 150x-SD-Karten. CF-Karten am gleichen Leser bringen zwar eine ähnliche Performance, werden aber trotzdem als nicht readyboosttauglich abgelehnt. Dafür hatte ich mit dem internen per PCI angebundenen SD-Kartenslot meines Toshiba-Notebooks kein Glück, der war wiederum zu langsam ;-) Mir scheint, dass die Aussage "keine USB-Kartenleser" mehr aus eigenen schlechten Performanceerfahrungen der Entwickler stammt, die Nutzung von USB-Kartenlesern aber nicht gesondert vom Betriebssystem abgeprüft und verhindert wird.

  • Anonymous
    January 30, 2007
    Hallo Detlev, ich meine, dass ReadyBoost nur mit externen Lesern funktioniert, wenn diese nicht für jeden Slot einen eigenen Laufwerksbuchstaben verwenden. Ich habe mangels entsprechender Hardware das aber noch nicht testen können. Zu dem internen Lesern: Es gibt Notebooks, bei denen der interne SD-Cardreader per PCMCIA eingebunden ist. So zum Beispiel bei einem Samsung P35. Oder sie sind schlicht zu langsam. So zum Beispiel beim Toshiba M200. Für letzteren gibt es aber vielleicht demnächst ein BIOS-Update, welches den Rechner Vista-tauglich macht und den SD-Slot beschleunigt. Näheres ist mir aber noch nicht bekannt. VG Daniel

  • Anonymous
    February 02, 2007
    Hallo Daniel, zunächst einmal vielen Dank für die wirklich mal interessanten, technischen Informationen. Andere Leser, mich eingeschlossen würden sich auch über Details zu Superfetch und Readydrive freuen. Leider findet man dazu kaum deutschsprachige Informationen technischer Art. Viele Grüße, Karl-Heinz

  • Anonymous
    February 03, 2007
    Also die Technik ist schon Klasse. Wenns denn richtig funktioniert, dann sind auch die nervig langen Starts des Betriebssystems immens verkürzt.Spricht Einiges dafür das Vista "wohnzimmertauglich" wird, wenn man den PC einfach einschaltet und er ist da und auch schnell wieder ausschaltet. @Davide Russo: Flash-Speicher und Hauptram unterscheiden sich, bitte nicht vergessen wenn du den Strom abschaltest ist Hauptspeicher leer, bei Flash bleiben die Daten vorhanden. Wäre ja schlimmm wenn du deine Digicam auschaltest und deine Bilder von der SD-Karte futsch sind.

  • Anonymous
    February 07, 2007
    Hallo, wie gesagt, sehr gute Info zur ReadyBoost :-) Zitat: "Nur beim Hauptspeicher scheint es einigen wichtig zu sein, dass davon möglichst viel nicht benutzt wird. Das macht für mich keinen Sinn." Die größte Angst des PC-Nutzers ist, dass Daten in die Swap-Datei ausgelagert werden, weil dann sein System langsam wird. Dieses hat sich halt jahrelang in unser Gedächtnis eingebrannt :-) Jetzt ist es natürlich für den Normalnutzer ein Bedrohung seiner Lebensqualität, wenn er hört, dass Vista "viel mehr Arbeitsspeicher" verwendet (braucht). Es ist leider aus diesem Blog auch nicht zu erkennen, wie Vista mit dem verwendeten Speicher umgeht. Gibt es vom "Superfetch"-benutzten Speicher wieder etwas frei, wenn nicht mehr viel Platz ist und die nächste Anwendung zum Laden ansteht? Weil dann kann es ja gerne den "nicht benutzten" RAM für Caching verwenden. Grüße Frank :-)

  • Anonymous
    February 07, 2007
    Hallo Frank, da Du nicht der einzige mit dieser Frage bist, sondern ich naezu überschüttet werde mit Anfragen, habe ich der Beantwortung einen eigenen Artikel gewidmet: http://blogs.technet.com/dmelanchthon/archive/2007/02/08/die-angst-des-pc-nutzers.aspx VG, Daniel