Opublikowano: 5 grudnia 2006
Autor: Grzegorz Mazur
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.
Wstęp
Technologia
Wymagania
Jak skorzystać z ReadyBoost?
Kompatybilność
Konfiguracja zaawansowana
Podsumowanie
Linki
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ść.
Do początku strony
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.
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.
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
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.
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:
Wartość
2
0
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ą.
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.
...
jokero100