Czemu dyski SSD zwalniają, gdy są pełne danych?

Wszystkie testy, benchmarki i zwykłe obserwacje wykazują jasno, że dyski SSD po napełnieniu niemal do pełna wykazują dramatyczne spadki wydajności. Sprawdźmy, czemu tak się dzieje i jak nie doprowadzić do takiej sytuacji.

Po pierwsze, nigdy nie napełniajmy dysku SSD do pełna – to jedna z podstawowych zasad korzystania z tego typu rozwiązań. Jeśli dysk zostanie napełniony w pełni, jego sprawność działania drastycznie spadnie spowalniając pracę całego komputera. To oczywiście bardzo uciążliwe i jednocześnie niesprawiedliwe, gdyż nie możemy w pełni komfortowo korzystać z pełnej funkcjonalności i pojemności dysku.

Puste i częściowo zapełnione bloki – jak to działa?

Jeśli zapisujemy dowolny plik na dysku SSD, ten szuka wolnego bloku, a następnie zapełnia go – to najprostszy i najszybszy sposób. Między innymi dlatego nowe systemy operacyjne, takie jak Windows 7 i 8 korzystają z technologii TRIM, która odpowiada za natychmiastowe usuwanie (po wykasowaniu ich w systemie) plików przechowywanych na dysku SSD. W przypadku tradycyjnych dysków magnetycznych, nawet po wykasowaniu plików w systemie, ich elementy nadal są dostępne i mogą zostać odzyskane.

Na dyskach SSD po całkowitym wykasowaniu plików, wszystkie ich elementy również zostają usunięte. Technologia TRIM pilnuje, aby opróżniony blok pamięci szybko został zapełniony nowymi danymi. I tu pojawia się problem – w przypadku dysków magnetycznych, zapisywanie danych na częściowo zapełnionym sektorze jest tak samo szybkie, jak w przypadku sektorów zupełnie pustych. Dyski SSD natomiast muszą najpierw wyczyścić blok, aby zapisać na nim nowe dane. Pamięć NAND Flash zapisuje dane na stronach o pojemności 4 KB w blokach 256 KB. By dodać nowe strony do częściowo zapełnionego bloku, dysk SSD musi najpierw wyczyścić cały blok, aby znów zapisać na nim dane.

Jeśli dysk jest napełniony w połowie, istnieje mnóstwo wolnych bloków do zapisania, dzięki czemu proces kopiowania, kasowania, przenoszenia i zapisywania danych trwa bardzo krótko – dysk ma miejsce, aby „żonglować” danymi. Jeśli jednak dysk jest napełniony niemal w pełni, wolnych bloków jest niewiele – musimy wtedy poczekać, aż dysk SSD powoli przeniesie dane pomiędzy pustymi lub tylko częściowo napełnionymi blokami, tymczasowo zapisze część danych w pamięci cache etc.

Po zapełnieniu dysku w pełni lub w ok. 95 procentach, najprawdopodobniej zostaniemy z wieloma częściowo zapełnionymi blokami pamięci – dysk nie będzie w stanie zapełnić wolnej przestrzeni i nie skonsoliduje częściowo zapełnionych bloków w jeden pełny blok, by stworzyć nowe miejsce na dane.

Czy jest na to recepta?

Producenci oczywiście starają się zapobiec sytuacjom, w których użytkownicy po zapełnieniu dysków w pełni borykają się z ogromną stratą wydajności. Dyski SSD oferowane na rynku zazwyczaj posiadają blokady – około 7 procent całkowitej pamięci flash jest niedostępna dla użytkownika. Takie rozwiązanie jest znane pod nazwą „overprovisioning” – dodatkowa pamięć jest niedostępna dla użytkownika i niewidoczna dla komputera. Ten dodatkowy zapas pamięci sprawia, że dysk nie zostanie nigdy zapełniony w 100%, a co za tym idzie jego wydajność nie zostanie drastycznie zmniejszona. W najnowszych dyskach SSD pojawiają się już funkcje konsolidacji danych – jeśli ilość danych przekroczy pewien poziom, rozpocznie się kopiowanie niewielkich ilości danych do częściowo zapełnionych bloków. Czynność ta uzależniona jest w głównej mierze od kontrolera i jest niezależna od działań użytkownika.

Jeśli korzystamy z dysku SSD, powinniśmy unikać sytuacji, w których zapełnienie przekracza około 75 % całkowitej pojemności. Tego typu magazyny danych świetnie sprawdzają się w roli dysków systemowych, które nigdy nie zostaną w pełni zapełnione, a zysk wydajności przy zapełnieniu do około 50 procent wpłynie pozytywnie na pracę całego komputera.

Komentarze