Optymalizacja Windows pod kątem dysków SSD

Wcześniej zasada było prosta: szybki CPU to szybszy komputer. Jednak współczesne procesory wielordzeniowe mają tyle mocy, że wąskim gardłem stały się dyski twarde. Nowa formuła wydajności brzmi więc tak: szybszy pecet równa się szybki dysk. Dotyczy to szczególnie napędów SSD (Solid State Disks) – zapamiętują one dane elektronicznie i nie spowalnia ich żadna mechanika. Co więcej, zapisują (i odczytują) na wielu chipach jednocześnie, przez co osiągają fantastycznie krótkie czasy dostępu. Wydaje się więc, że jeśli nie brać pod uwagę wysokiej ceny SSD, wszystko jest super. Niestety nie do końca – system operacyjny również musi zostać dopasowany do nowej technologii.
W przypadku szybkich SSD warto wyłączyć tę usługę Visty.
W przypadku szybkich SSD warto wyłączyć tę usługę Visty.

Ci, którzy używają Windows 7, nie mają z tym problemu. Ale pozostali owszem: ani Vista, ani XP nie wiedzą, czym jest SSD, i traktują go jak zwykły dysk twardy. To niedobre rozwiązanie, ponieważ w efekcie dochodzi do hamowania SSD. Co więcej, błędne ustawienia Windows mogą spowodować, że skróci się czas życia dysku, który i tak z powodów technologicznych nie jest zbyt długi.

W artykule opisujemy, jak zoptymalizować Vistę i XP pod kątem używania dysków flashowych, i podpowiadamy, jakich narzędzi nie powinno się używać do ich konserwacji. Wyjaśniamy także, dlaczego starsze wersje Windows mają takie problemy z SSD.

Komórki flashowe: Limitowana długość życia

Najmniejszą częścią SSD jest komórka, która zapamiętuje ładunek elektryczny. Istnieją dwa typy komórek: Single Level Cells (SLC) oraz Multi Level Cells (MLC). Te pierwsze mogą przechowywać dwa różne ładunki, które reprezentują zawsze 0 albo 1, czyli jeden bit; w MLC można umieścić aż cztery rozróżnialne ładunki. Kodują one 2 bity i przechowują dwa razy więcej danych.

Ale podwójna pojemność ma swoją cenę: w porównaniu z SLC zapis w MLC trwa trzykrotnie dłużej. Do tego drastycznie zmniejsza się przeciętna długość życia komórki – w przypadku SLC wynosi ona przynajmniej 100 000 cykli zapisu, zaś w przypadku MLC zaledwie jedną dziesiątą tej wartości. 10 000 brzmi ciągle nieźle, ale ponieważ Windows sporo operacji zapisu przeprowadza automatycznie, SSD mógłby zostać zniszczony już po kilku miesiącach. Z tego powodu kontroler SSD stara się, aby wszystkie komórki były zapisywane możliwie tak samo często. Technika ta, zwana Wear Leveling, (patrz grafika stronie obok) wydłuża średni czas życia SSD do wielu lat.

Wear Leveling: Jednoczesny dostęp do danych

Stosując Wear Leveling, kontroler SSD posługuje się dwiema tablicami. Pierwsza, tablica danych, zawiera tłumaczenia logicznej struktury danych na ich fizyczne lokalizacje w pamięciach flash. Druga, tablica usunięć, zawiera informacje o tym, jak często określony blok danych był nadpisywany w przeszłości. W przypadku gdy zapamiętujemy w SSD nowy plik, kontroler wyszukuje w tablicy usunięć bloki, które były do tej pory najrzadziej używane, i tam go zapisuje.

Ale to nie wystarcza. Gdy zainstalujemy pod kontrolą Windows program taki jak Photoshop, jego dane zawsze pozostają w tych samych lokalizacjach. Natomiast bloki, w których zapisujmy obrazy i zdjęcia, są używane dużo częściej, przez co ich zawartość szybciej się zmienia. Z tego powodu kontroler od czasu do czasu wymienia zawartość rzadko używanych bloków na taką z bloków, których używa się często.

Komórki będą się starzały równomiernie tylko wówczas, gdy jednocześnie będą używane obydwie wymienione metody. W tym przypadku widać, jak bardzo stare mechanizmy dyskowe nie odpowiadają nowoczesnej technologii: w przypadku Wear Leveling kontroler SSD sam organizuje dane. Tymczasem Windows, z Vistą włącznie, został napisany z myślą o obsłudze nośników magnetycznych i nie ma kontroli nad tym, w jakim fizycznym miejscu znajdą się bity.

Zapis: Hamulec na usługach systemu

SSD może zapisywać nowe dane tylko w tych komórkach, których treść została wcześniej skasowana. Bezpośrednie nadpisywanie, jak w przypadku dysków magnetycznych, nie jest możliwe. Aby zrozumieć operację zapisu, musimy najpierw zaznajomić się ze strukturą danych na SSD: komórki flashowe przechowujące bity są grupowane – w zależności od konkretnego SSD – w strony o pojemności od 2 do 4 kB. Z kolei strony stanowią części składowe bloków o wielkości od 128 do 512 kB. SSD może, co prawda, zapisywać pojedyncze strony, ale kasuje tylko całe bloki. Sęk w tym, że w Windows kasowany plik nie jest fizycznie wymazywany, lecz jedynie oznaczany jako usunięty. W rezultacie miejsce po nim jest widoczne w systemie plików jako wolna przestrzeń. Tymczasem SSD ciągle przetrzymuje tam dane, ponieważ jego kontroler usuwa bloki tylko wtedy, gdy chce zapisać w nich nowe informacje.

Podczas zapisu sterownik dysku ustala najpierw, które bloki zostaną wtedy użyte, przenosi zawartość znalezionych w nich stron, które nie mogą zostać skasowane, do pamięci pośredniej, po czym czyści w tych blokach wszystkie komórki. Dopiero wtedy może zapisać na pustych stronach nowy plik, dokładając do tego tymczasowo przesunięte dane. W efekcie tego obniża się szykość zapisu o około 40 proc., nawet w przypadku dobrych SSD. To zjawisko nie występuje w przypadku zupełnie nowych dysków flashowych, które mają ciągle wiele wolnych stron. Jednakże na skutek działania mechanizmu Wear Leveling także i one są bardzo szybko całkowicie zapełniane.

Aby temu przeciwdziałać, producenci dodają dodatkową pamięć do dysku SSD, zapewniając mu puste strony, których system operacyjny nie widzi. Jednak w przypadku tej metody zmniejszenie szybkości zapisu może być tylko odłożone w czasie – rezerwowe strony kiedyś przecież się zapełnią. Rozwiązaniem może być polecenie TRIM, jako część systemowej obsługi dysków twardych. Wykonując tę komendę, system na bieżąco informuje dysk, które konkretnie bloki skasował. A wtedy kontroler SSD może je wyczyścić przed następną operacją zapisu.

W Windows 7 zaimplementowano obsługę TRIM. Ale zarówno Vista, jak i XP nie rozumieją tego polecenia. Co więcej, rzadko się je spotyka również w firmwarze współczesnych dysków SSD. Jednak Intel zapowiedział, że przygotuje aktualizację firmware’u do swoich nowych SSD, które będą obsługiwać TRIM pod kontrolą Windows 7. W przypadku Visty i XP firma stworzy oddzielne narzędzia do tego celu.

Alignment: Optymalizacja partycji

Takie narzędzie jest również konieczne, dlatego że – inaczej niż Windows 7 – Vista i XP często pozostają w sprzeczności z funkcjonalnością SSD. Na przykład Windows XP domyślnie zaczyna partycję systemową na 126 sektorze dysku twardego, który w przypadku SSD leży w środku jednej ze stron. To niekorzystne, ponieważ przy takim niedopasowaniu XP często wykorzystuje wtedy tylko połowę stron w bloku. Skutkiem tego są niepotrzebne operacje zapisu i odczytu. Microsoft twierdzi, że ten efekt może spowolnić dyski SSD nawet o 50 proc. Aby tego uniknąć, musimy w Windows XP tak przesunąć sektor startowy partycji systemowej, aby początek klastra NTFS o wielkości 4 kB zaczynał się ze stroną SSD. Do tego wyrównania musi dojść przed formatowaniem. Ponadto można je zastosować tylko w przypadku nowych SSD, ponieważ wszystkie istniejące na nich dane będą po tym procesie nieczytelne.

W Viście granice partycji pokrywają się z granicami stron. Dlatego jeśli partycjonujemy dysk pod kontrolą XP, używając Visty, problem nie istnieje. Jeśli mamy tylko XP, należy zainstalować narzędzie Diskpart ze stron Microsoftu. Po podłączeniu SSD do systemu uruchamiamy narzędzie, wybierając »Start | Uruchom… | Diskpart«, i w otwarte okno wpisujemy:

list disk

Narzędzie wyświetli podłączone pamięci masowe. Dysk SSD będzie najczęściej oznaczony jako »Disk 1«. Wtedy należy wpisać:

select disk 1

Gdy narzędzie przełączy się na nośnik, schodzimy na poziom partycji:

list partition

Jeśli dysk jest nowy, Diskpart powiadamia, że nie znalazł partycji. Możemy więc utworzyć nową z prawidłowym wyrównaniem:

create partition primary align-64

Diskpart utworzy partycję typu primary zoptymalizowaną pod kątem SSD. Aby mogła się ona stać partycją startową, musimy ją jeszcze uaktywnić. W tym celu wpisujemy:

active

Teraz, aby mieć pewność, że Windows będzie używał naszego SSD, zamiast go niszczyć, musimy dokonać jeszcze kilku modyfikacji.

Windows: Zatrzymać zbędne serwisy

Na początek zatrzymamy defragmentację systemową w Viście. Ten proces zwiększa tylko niepotrzebnie liczbę zbędnych operacji zapisu – nie przekłada się natomiast wyraźnie na wydajność SSD. Wybierzmy »Wszystkie programy | Akcesoria | Narzędzia systemowe | Defragmentator dysków«. Kliknijmy przycisk »Wybierz woluminy…« i usuńmy zaznaczenie przy wszystkich partycjach dotyczących dysku SSD.

W przypadku SSD nie sprawdza się też usługa Prefetch, dzięki której XP i Vista zapamiętują na dysku często używane programy tak, żeby można je było szybko załadować do RAM-u. Należy ją więc wyłączyć w Rejestrze. W tym celu wybieramy »Start | Uruchom…« w XP i w okno wpisujemy »regedit«; w Viście polecenie wprowadzamy w Pole wyszukiwania. W edytorze Rejestru przechodzimy do gałęzi »HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters« i przyporządkowujemy pozycji »EnablePrefetcher« typu DWORD wartość »0«.

Vista oferuje jeszcze dwie usługi, które powodują niepotrzebną aktywność systemu: ReadyBoost i Superfetch. Ta pierwsza wykorzystuje miejsce na dyskach przenośnych, aby zwiększyć wydajność systemu, a druga to rozwinięcie usługi Prefetch. Obydwie wyłączymy, przechodząc do »Zarządzanie komputerem | Usługi«. Odnajdujemy odpowiedni wiersz, zaznaczamy go prawym przyciskiem myszy i z menu wybieramy »Właściwości«. W nowym oknie ustawiamy »Tryb uruchomienia« na »Wyłączony« i klikamy »OK«. Uwaga: usługa Supefetch kryje się w wierszu »Wstępne ładowanie do pamięci«. Ponadto musimy wyzerować pozycję »EnableSuperfetch« w Rejestrze, podobnie jak robiliśmy to z Prefetch w XP. Na płycie CHIP-a zamieściliśmy skrypty, które w obydwu systemach robią to automatycznie – wystarczy dwukrotne kliknięcie.

Software: Wyłączyć, co niepotrzebne

Za sprawą dodatkowej optymalizacji Windows możemy jeszcze bardziej zredukować liczbę zapisów na SSD, nawet jeśli te ustawienia wpłyną na obniżenie zwykłego poziomu bezpieczeństwa i komfortu. Jeśli regularnie tworzymy kopie bezpieczeństwa na nośnikach zewnętrznych, możemy wyłączyć przywracanie systemu.

Szczególnie w Vista Ultimate warto też ograniczyć aktywność Volume  Shadow  Copy Services – usługi pozwalającej na proste odzyskiwanie przypadkowo skasowanych plików. Gdy ją wyłączymy, SSD będzie się wolniej zapełniał, a przez to szybciej działał. Przeglądarki również zapisują na dysku wiele danych. Tego można uniknąć: w IE8 wybieramy »Bezpieczeństwo | Przeglądanie InPirvate«, w Firefoksie 3.5 »Narzędzia | Przejdź do trybu prywatnego«.

Z technicznego punktu widzenia jest też sens pracować bez pliku wymiany, chociaż niektóre programy wymagają go do działania. Jeśli mamy na pokładzie 4 GB lub więcej RAM-u, możemy spróbować go wyłączyć za pomocą apletu »System« w Panelu sterowania. Gdy po tym jakiś program przestanie poprawnie działać, możemy po prostu wrócić do poprzedniego stanu.

Podczas dostrajania systemu musimy ciągle pamiętać o jednym: dobre SSD pracują wyraźnie szybciej niż tradycyjne dyski nawet bez dodatkowej optymalizacji. Dlatego nasze sztuczki mają wartość jedynie wtedy, gdy w efekcie nie ucierpi funkcjonalność sytemu – a my nadal będziemy zadowoleni z pracy na szybszym pececie.

Windows 7 gotowe na SSD

W przeciwieństwie do XP i Visty, Windows 7 potrafi ustalić, czy napęd jest dyskiem flashowym. Wyłącza wtedy wszystkie funkcje, które optymalizują dyski magnetyczne, ponieważ niepotrzebnie obciążają one SSD.

Windows 7VistaXP
Rozpoznawanie SSD+
Obsługa polecenia TRIM+
Prawidłowe wyrównanie partycji++
Wyłączanie ReadyBoost+nie przewidziano
Wyłączanie Prefetch+
Wyłączanie Superfetch+nie przewidziano
Wyłącznie defragmentacji+niepotrzebne

Problem: SSD starzeją się podczas kasowania danych

Komórka flash wytrzymuje tylko określoną liczbę procesów kasowania. Jednak za każdym razem, gdy kontroler zapisuje dane w używanej wcześniej komórce, musi ją najpierw wyczyścić. Inaczej niż w przypadku dysków magnetycznych, danych na SSD nie można bowiem nadpisywać bezpośrednio.

Rozwiązanie: Wear Leveling chroni komórki flashowe

Kontroler musi dbać o to, żeby komórki flashowe SSD były nadpisywane mniej więcej tak samo często. Wear Leveling stosuje w tym celu dwie metody.

Dynamiczna Za każdym razem, gdy kontroler SSD otrzymuje od systemu polecenie zapisu danych, wyszukuje na dysku blok najmniej nadpisywany w przeszłości.

Statyczna SSD regularnie wymienia zawartość często używanych bloków (np. dane tymczasowe) na tę z bloków, które są rzadko nadpisywane (np. dane zainstalowanych programów).

Złe narzędzia

Wiele programów do zadań systemowych nie ma nic lub prawie nic do zaoferowania dyskom SSD. Powinno się unikać następujących narzędzi.

Defragmentatory

W przypadku SSD nie ma sensu ich używać. W rzeczywistości defragmentatory mogą je nawet uszkodzić przez niepotrzebne operacje zapisu.

Wymazywacze danych

Nie gwarantują, że usuniętych danych nie da się odzyskać. Aby na dobre wymazać informacje na SSD, należy na nim skasować wszystko.

Backupy w czasie rzeczywistym

Narzędzia, które na bieżąco monitorują zmiany w systemie, bez ustanku zapisują nowe dane na SSD, co prowadzi do jego szybkiego starzenia się.

Powiązane treści:

Dysk SSD do laptopa – ranking najlepszych modeli.