Windows Vista ReadyBoost
Opublikowano: 5 grudnia 2006
Przy porównaniu systemów Windows XP i Windows Vista na komputerze z 1 GB pamięci RAM, wydajność tego ostatniego jest porównywalna z poprzednikiem lub nawet szybsza. Obecnie wiele komputerów ma jednak tylko 512 MB pamięci RAM i na nich aplikacje uruchomione pod kontrolą Windows XP działają lepiej. Dzieje się tak z powodu większego zużycia pamięci przez sam system operacyjny Windows Vista do nowych funkcji, takich jak: indeksowanie danych, działanie interfejsu Aero itp. Im mniej dostępnej pamięci RAM, tym częściej system odczytuje dane z pliku wymiany znajdującego się na dysku twardym. Spowalnia to aplikacje, a w szczególności te, które działają na granicy płynności nawet pod systemem Windows XP.
Zawartość strony
Wstęp
Menadżer pamięci w systemie Windows Vista został zaprojektowany tak, że jeśli w komputerze znajduje się więcej pamięci, system potrafi zarządzać nią znacznie wydajniej niż poprzednie wersje Windows dzięki technologii SuperFetch (rozszerzenie technologii Prefetching znanej z Windows XP). Tak więc na maszynie z większą ilością pamięci RAM (np. 2 GB) Windows Vista działa dużo lepiej od Windows XP, szczególnie po pewnym okresie użytkowania. Dzieje się tak, gdyż Vista "uczy się", jakie aplikacje i ich funkcje są najczęściej używane i optymalizuje pod tym kątem wydajność.
Technologia
Oczywiście, nowe komputery zaprojektowane dla systemu Windows Vista będą posiadać 1GB, a nawet więcej pamięci RAM, aczkolwiek pozostanie spora grupa komputerów z mniejszą ilością pamięci (zazwyczaj 512MB). Dla posiadaczy tych komputerów (i nie tylko) z pomocą przychodzi technologia Windows ReadyBoost. Jeśli użytkownik posiada przenośną pamięć typu flash (pendrive USB lub kartę SD), może wykorzystać ją do przyspieszenia systemu. Technologia ta nie wykorzystuje pamięci na dyskach przenośnych bezpośrednio do zwiększenia ilości pamięci RAM (z powodu ogromnej dysproporcji wydajności), natomiast zapisuje tam dane wykorzystywane przez menadżera pamięci. Jeśli użytkownik uruchamia wiele aplikacji na systemie z małą ilością pamięci, Windows ReadyBoost wykorzysta dysk flash do stworzenia kopi pamięci wirtualnej, która nie jest tak szybka jak RAM, ale i tak szybsza niż dysk twardy dla losowych odczytów/zapisów. Co ciekawsze, na dysku flash nie jest zapisywane nic, czego nie ma na twardym dysku, żeby po usunięciu klucza USB z systemu można było dalej bez przeszkód kontynuować pracę.
Pamięć podręczna zapisywana na dysku flash jest szyfrowana za pomocą algorytmu AES-128, tak więc nie trzeba się obawiać o wyciek istotnych informacji w przypadku zagubienia pendrive'a czy karty flash. Dodatkowo menadżer pamięci kompresuje strony przed zapisaniem ich na urządzenie, zwiększając tym samym (średnio 2x) przestrzeń dostępną na cache. W systemie można użyć co najwyżej jednego urządzenia jako pamięci dla technologii ReadyBoost. Być może w przyszłych wersjach technologii sytuacja ta ulegnie zmianie.
Na pamięć cache dla ReadyBoost można przeznaczyć obszar od 230 MB do 4GB wolnego miejsca na dysku przenośnym. Limit ten jest spowodowany przez ograniczenia systemu plików FAT/FAT32 używanego przez pamięci przenośne. Warto zauważyć, że dla pendrive'a o pojemności 4GB ilość pamięci dostępnej dla ReadyBoost wynosi dzięki kompresji aż 8GB. Zalecenia co do ustawienia wielkości obszaru cache na dysku flash są następujące: stosunek pamięci flash do pamięci RAM powinien wynosić 1:1 lub więcej, ale maksymalnie 2.5:1. Powyżej tej granicy różnica w wydajności nie będzie zauważalna.
Wymagania
Dla celów ReadyBoost można wykorzystywać większość szybszych urządzeń typu pendrive podłączanych do zewnętrznych portów USB, a także czytników kart flash na wewnętrznej magistrali USB/PCI (stosowanych np. w laptopach). Czytniki zewnętrzne podłączane przez porty USB nie są obsługiwane głównie dlatego, gdyż są one widziane w systemie jako dostępne napędy nawet pomimo braku kart (jak stacja dyskietek). Podstawowym czynnikiem decydującym, czy system może skorzystać z urządzenia, jest dostępna ilość wolnego miejsca (min.230MB) i odpowiednia wydajność. ReadyBoost wymaga magistrali USB 2.0 i przepustowości 2.5 MB/s dla odczytu losowych 4kB porcji danych oraz 1.75 MB/s dla zapisu losowych porcji o wielkości 512kB.
Oczywiście można zapytać: po co wykorzystywać pamięci flash skoro dyski twarde są szybsze? Owszem, dyski twarde są znacznie szybsze, ale dla dużych ciągłych porcji danych, natomiast pamięci flash są szybsze przy losowych odczytach / zapisach niewielkich porcji danych. ReadyBoost potrafi inteligentnie odczytywać duże porcje pamięci wirtualnej z dysku twardego, natomiast mniejsze z pamięci flash.
A teraz kilka faktów, które powinny przemówić do zwolenników nawet bardzo szybkich dysków twardych. Urządzenia spełniające wymagania technologii ReadyBoost charakteryzują się następującą ilością losowych odczytów na sekundę:
• |
2.5[MB/s] : 4 [kB] = (2.5*1024)[kB/s] : 4 [kB] = 640 [odczytów/s] |
Aby dysk twardy spełnił takie wymagania, jego średni czas dostępu powinien wynosić:
• |
1[s] : 640 = 1000[ms] / 640 = 1.5 [ms] |
Dostępne na rynku dyski twarde 7200RPM mają czasy dostępu na poziomie ok. 9 ms (dane producentów: WD 320GB - 8.9 ms, Seagate 320GB - 8.5 ms), co jest wynikiem 6x gorszym od najwolniejszych urządzeń zgodnych z ReadyBoost. Szybsze urządzenia jeszcze powiększają tą różnicę. Przykładowo pendrive Victorinox Swissbit 2.0 512MB osiągnął według systemu Windows Vista wydajność rzędu 4261kB/s dla odczytu małych porcji danych 4kB i 3733kB/s dla zapisu średnich porcji 512kB, co daje ponad 1000 losowych odczytów na sekundę i czas dostępu poniżej 1 [ms], czyli ok. 10x szybciej od dostępnych dysków twardych.
Jak skorzystać z ReadyBoost?
Aby skorzystać z innowacyjnej technologii w celu przyspieszenia systemu Windows Vista wystarczy podpiąć przenośną pamięć flash do komputera. Wyświetlone zostanie okienko dialogowe Autoplay (Autoodtwarzanie, Rys. 1.), na którym należy wybrać opcję Speed up my system using Windows ReadyBoost (Przyspiesz mój system korzystając z Windows ReadyBoost). System automatycznie sprawdzi, czy urządzenie spełnia wymagania technologii, poprzez przeprowadzenie serii testów odczytu i zapisu na całej przestrzeni przenośnego dysku.
Rys. 1. Okienko dialogowe Autoplay
Jeśli autoodtwarzanie jest wyłączone lub użytkownik wybrał inną opcję, można również przejść do właściwości dysku przenośnego na zakładkę ReadyBoost (Rys. 2). Następnie należy wybrać opcję: Use this device (Używaj tego urządzenia) i określić przestrzeń, która zostanie przeznaczona na pamięć podręczną technologii ReadyBoost. Zalecana wielkość jest w większości przypadków równa ilości pamięci RAM dostępnej na komputerze.
Rys. 2. Zakładka ReadyBoost
Po tej operacji system zarezerwuje wybraną część pamięci przenośnej poprzez utworzenie w głównym katalogu urządzenia pliku ReadyBoost.sfcache (Rys.3).
Rys. 3. Plik ReadyBoost.sfcache
Po podpięciu drugiego urządzenia, zgodnego z ReadyBoost, we właściwościach będzie znajdować się komunikat, że pamięć podręczna została już utworzona na innym dysku przenośnym (Rys. 4). Jeśli użytkownik chce wykorzystać nowe urządzenie, musi wyłączyć pamięć cache na innym.
Rys. 4. Zakładka ReadyBoost drugiego urządzenia
Kompatybilność
Niestety, nie wszystkie urządzenia przenośne USB 2.0 są kompatybilne z technologią ReadyBoost, co zależy w dużej mierze od zastosowanej jakości pamięci flash i sterownika użytego w urządzeniu. Jeśli urządzenie okaże się niezgodne, na zakładce ReadyBoost zostanie wyświetlona odpowiednia informacja, że urządzenie jest zbyt wolne. Można też zaprzestać ponownego testowania urządzenia poprzez zaznaczenie opcji Stop retesting this device... (Zaprzestań ponownego testowania tego urządzenia...). Część urządzeń okazuje się niekompatybilna nawet pomimo tego, iż w specyfikacji podawana jest teoretycznie wystarczająca prędkość, np. odczyt: 10MB/s, zapis: 5MB/s. Dane te dotyczą ciągłych porcji danych i zazwyczaj podają maksymalną wydajność, zaś ReadyBoost mierzy wydajność dla danych rozmieszczonych losowo. Kolejną przyczyną może być różna wydajność w różnych partiach pamięci urządzenia. Przykładowo niektóre pendrive'y o pojemności 1GB posiadają pierwsze 128MB b.wydajnej pamięci flash, zaś resztę znacznie wolniejszej, a ponieważ ReadyBoost mierzy wydajność na całym urządzeniu, nie są one wykrywane jako zgodne z tą technologią.
Rys. 5. Właściwości urządzenia niekompatybilnego
Oto klika przykładowych pamięci przenośnych USB zgodnych z ReadyBoost:
• |
Apacer Handy Steno HT203 2GB |
• |
Crucial Gizmo Overdrive 2GB |
• |
Kingston DataTraveler ELITE 1GB |
• |
Kingston DataTraveler 512MB |
• |
Muvo TX FM 1GB |
• |
Patriot Xporter XT 4GB |
• |
Sandisk Cruzer Titanium 2GB |
• |
Sony MicroVault Tiny 1GB |
• |
Verbatim Store'n'Go Pro 1GB |
• |
Victorinox Swissbit 2.0 512MB |
…i kilka niezgodnych:
• |
Corsair Flash Readout 2GB |
• |
OCZ Rally2 2GB |
• |
Patriot Xporter 2GB |
Pełna lista znajduje się na stronie ReadyBoost Compatibility Chart.
Konfiguracja zaawansowana
Oczywiście, jak większość elementów systemu operacyjnego, także ReadyBoost przechowuje swoje ustawienia w rejestrze w gałęzi: [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt]
Rys. 6. Konfiguracja ReadyBoost w rejestrze
Gałąź EMDMgmt zawiera klucze charakteryzujące urządzenia przenośne wykryte kiedykolwiek w systemie (Rys. 6). Oto główne parametry konfiguracyjne i ich przykładowe wartości:
Parametr |
Opis |
CacheSizeInMB |
wielkość aktualniej zaalokowanej pamięci cache [MB] |
CacheStatus |
status pamięci cache (0 - wył., 1 - wł., 2 - niedostępna) |
DeviceStatus |
status urządzenia (2 - gotowe, 4 - niekompatybilne) |
DoRetestDevice |
czy testować urządzenie ponownie |
HasSlowRegions |
czy urządzenie posiada powolne obszary |
LastTestedTime |
czas ostatniego testowania |
PhysicalDeviceSizeMB |
fizyczna wielkość urządzenia [MB] |
ReadSpeedKBs |
wynik testu odczytu 4kB porcji danych [kB/s] |
RecommendedCacheSizeMB |
zalecana wielkość pamięci cache [MB] |
USBVersion |
wersja standardu USB |
WriteSpeedKBs |
wynik testu zapisu 512kB porcji danych [kB/s] |
W niektórych przypadkach (głównie na notebookach z dyskami 4200RPM, które mają niską prędkość odczytu losowych porcji małych danych np. 800kB/s i średni czas dostępu >15ms) nawet wolniejsze pamięci flash (niezgodne z wymaganiami ReadyBoost) mogą znacznie przyspieszyć dostęp do pamięci wirtualnej. Aby ich użyć należy wykonać następujący trick:
1. |
Pozwolić systemowi wykryć i przetestować urządzenie. |
2. |
Odłączyć urządzenie. |
3. |
Uruchomić edytor rejestru regedit.exe i przejść do gałęzi:[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt]. |
4. |
Znaleźć klucz odpowiadający konfigurowanemu urządzeniu (w nazwie klucza znajdują się producent, model urządzenia oraz etykieta). |
5. |
Ustawić następujące wartości parametrów: Parametr Wartość
DeviceStatus 2
DoRetestDevice 0
HasSlowRegions 0
ReadSpeedKBs 4096
WriteSpeedKBs 4096
|
6. |
Podłączyć urządzenie i przejść do właściwości i zakładki ReadyBoost, a następnie określić wielkość pamięci podręcznej. |
Przed tym zabiegiem zalecane jest sprawdzenie wartości parametrów ReadSpeedKBs / WriteSpeedKBs. Jeśli są one niższe niż 1000 [kB/s], to raczej nie warto ustawiać na sztywno parametrów urządzenia jako zgodnego z ReadyBoost, gdyż skutek może być zupełnie odwrotny - zamiast przyspieszyć wydajność systemu, spowolni ją.
Podsumowanie
Technologia ReadyBoost to jedna z ciekawszych innowacji wprowadzonych w Windows Vista, szczególnie jeśli chodzi o dostęp do pamięci wirtualnej, który jest bardzo ważnym czynnikiem dla ogólnej wydajności systemu. Nazwa ReadyBoost (przyspieszenie gotowości) dobrze oddaje charakter spełnianej funkcji. Warto wykorzystywać tę technologię nawet na komputerach z 1GB pamięci RAM, a szczególnie na systemach z dużą ilością jednocześnie uruchomionych aplikacji oraz notebookach z wolniejszymi dyskami twardymi. Wówczas wzrost wydajności będzie jeszcze bardziej widoczny.
Linki
• |
|
• |
|
• |
|
• |
|
Grzegorz Mazur (Windows - Shell/User) |