.: Daniel Melanchthon :.

Banging your head against a wall uses 150 Calories an hour.

Unter der Haube von ReadyBoost

Unter der Haube von ReadyBoost

  • Comments 23
  • Likes

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
  • Vielen Dank für die wirklich ausführliche Erklärung. Daumen hoch!

    Gruß,

    Kai

  • 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

  • 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...

  • Wie gewohnt angenehm hohe Informationsqualität. Vielen Dank!

    Gruß,

    Robert

  • 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.

  • Vielen Dank für die ausführliche und interessante Infos. Ich bin aber überzeugt dass dies wieder mal so ein Feature ist, dass sich als Seifenblase herausstellt und kaum jemand braucht.

    Meine Prognose: Ende Jahr werden PC's mit 2GB DDR-RAM Standard sein und die Funktion Readyboost mutiert zum Marketing-Gag.

    Danke trotzdem für die kompetenten Informationen.

    Gruss Davide

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

  • @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.

  • Quote: "Windows ReadyBoost verbessert in Zusammenarbeit mit Windows SuperFetch also primär die Antwortgeschwindigkeit des Rechners angepasst an die spezifische Nutzung durch den Anwender. "

    Kann ich nicht bestätigen! Mir geht es wie Mike. Vista auf meinem IBM Laptop mit 1 GB Speicher ist unerträglich lahm. Weiß nicht ob es allein an ReadyBoost liegt. Hab' Vista derzeit wieder deinstalliert. Sollte ich nochmal in Vista-Versuchung kommen, werde ich ReadyBoost mal ausschalten...

    Frank

  • @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.

  • Klasse Artikel zum Thema Readyboost in Deinem Blog. Ich hatte gestern zu diesem Thema Kontakt mit einem Redakteur der c’t und bat ihn, mal eine Test von USB-Sticks unter Readyboost Kriterien durchzuführen. Er sagte „c’t plane habe aber noch keine konkreten Termine“. Gerade die Zugrifszeit in ms schwankt selbst bei „schnellen“ Sticks gewaltig. Und genau die dürfte der Vista User deutlich als Readyboost-Effekt spüren.

    Habe im Netz eine gepflegte Liste mit Tauglichkeit/Untauglichkeit Aussagen von Usern gefunden. Vielleicht magst Du die noch nachtragen: http://www.grantgibson.co.uk/misc/readyboost/ und noch eine kleinere: http://vistausers.org/readyboost-compatible-incopatible-usb-memory-devices-t21.html und ein Vergleichstest von ein paar Sticks unter Readyboost Kriterien: http://www.extremetech.com/article2/0%2C1697%2C2017817%2C00.asp

    Mittlerweile gibt es sogar USB-Sticks speziell für ReadyBoost (Corsair TurboFlash). Ich habe mir vorgestern einen gekauft und muss sagen, die "gefühlte Geschwindigkeit" profitiert tatsächlich mehr als von meinem "alten" USB Stick. Die Zugriffszeiten und Durchsatzdaten des Sticks sind klasse, scheint tasächlich für 4k Reads optimiert zu sein. Komischerweise gibts den nur mit 512MB bzw. 1GB.

  • 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

  • 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.

  • 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

  • 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

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment