Czy mało miejsca na dysku wpływa na wydajność SSD?

16

Zastanawiałem się, czy posiadanie mniej niż 5-10 GB wolnego miejsca na dysku SSD wpłynie na wydajność. Czy jest specyficzny dla dysku SSD, czy raczej dotyczy systemu operacyjnego?

Na przykład na Intel X-25 G2, który ma obsługę TRIM (w systemie Windows 7).

Gabe
źródło

Odpowiedzi:

14

Większość dysków SSD zwalnia, gdy się zapełniają. Dyski SSD mają tendencję do wybierania pustych bloków do zapisu, ponieważ mogą modyfikować blok tylko poprzez usunięcie i ponowne zapisanie całego bloku. Gdy wszystkie te bloki zostaną częściowo wypełnione, wówczas każda operacja zapisu wymaga wymazania i przepisania, co oznacza, że ​​dysk SSD musi wczytać blok do pamięci podręcznej, zmodyfikować pamięć podręczną o nowe dane, a następnie usunąć blok i zapisać pamięć podręczną. Wynika to z jednego odczytu i dwóch operacji programowania dla każdego bloku, który wymaga modyfikacji. Ponadto, chociaż fragmentacja ma bardzo niewielki wpływ na dyski SSD, duża fragmentacja i fakt, że większość systemów operacyjnych nie wie o dyskach SSD, może spowodować, że system operacyjny wyda więcej zapisów, niż to konieczne. Bloki dysku SSD są zwykle większe niż jednostki alokacji systemu operacyjnego, więc jeśli dysk SSD nie oczekuje dodatkowych zapisów, może skończyć się powtarzaniem tego samego trzyetapowego procesu wiele razy na blok, dzięki czemu spowolnienie zapisu będzie jeszcze większe. Nawet usunięcie plików nie rozwiązuje tego problemu, ponieważ dane tam pozostają, a dysk SSD nie wie, że nie jest już używany, i kontynuuje przepisywanie usuniętych danych.

Operacja TRIM, obsługiwana przez dysk, pozwala systemowi operacyjnemu powiedzieć dyskowi, aby pozbył się usuniętych danych. Umożliwia to odzyskiwanie pustych bloków przez napęd. Jednak jedynymi systemami operacyjnymi obsługującymi TRIM są Windows 7, Windows Server 2008 R2 i dystrybucje Linux za pomocą jądra 2.6.33 lub nowszego.

Ponieważ masz system Windows 7, twój system używa polecenia TRIM i jest w stanie odzyskać nieużywane bloki. Jednak TRIM nie zmienia kolejności danych, więc jeśli dysk jest prawie pełny, duża fragmentacja może nadal powodować, że dane częściowo zajmują bloki i ogranicza efektywność TRIM. Najlepszą rzeczą, jaką mogę zrobić, o ile mogę powiedzieć, jest zwolnienie jak największej ilości miejsca na dysku. Jeśli możesz zwolnić wystarczającą ilość miejsca, możesz przyciąć pełne bloki, a dysk odzyska trochę prędkości. Są też programy do defragmentacji ukierunkowane na dyski SSD, co oznacza, że ​​defragmentują tylko tyle, aby przyciąć kilka dodatkowych bloków, ale nie znam żadnych wolnych. Myślę, że Diskeeper powinien to zrobić, ale jest drogi i słyszałem bardzo mieszane recenzje.

TuxRug
źródło
1
Warstwa FTL znajduje się poniżej poziomu systemu plików. Choć może to wyglądać na fragmentację systemu plików, NIE oznacza to, że warstwa FTL jest fragmentowana. Te programy „defrag” SSD są bezwartościowe, nie mogą uzyskać dostępu do warstwy FTL, to olej wężowy. Teraz brak wolnego miejsca powoduje, że dyski SSD stają się wolniejsze, ponieważ mają mniej miejsca na zbieranie śmieci, poziomowanie zużycia i tak dalej. Dyski SSD nie wybierają automatycznie pustych bloków per se, muszą również wziąć pod uwagę poziom zużycia. Podsumowując, system plików NIE wie nic o tym, jak przechowuje rzeczy w warstwie FTL
Time Twin
Systemy plików niezoptymalizowane pod kątem SSD nie przycinają tak dużo, co ma taki sam efekt jak mniejsze wolne miejsce.
Basilevs,
4

W tym doskonałym artykule AnandTech badają związek między obszarem zapasowym a wydajnością dysku SSD. Najważniejsze jest to, że wszystkie dyski SSD zyskują / utrzymują wydajność, pozostawiając nieużywaną część swojego miejsca. Czasami istnieje nawet różnica między 25% wolnego miejsca a 50% wolnego miejsca.

Stefan Seidel
źródło
3

Zależy to od konkretnego modelu SSD, dostawcy i wzorców użytkowania.

W niektórych sytuacjach intensywnie używany dysk SSD może zapewniać znacznie obniżoną wydajność, niezależnie od ilości używanego miejsca na dysku, wymagając czyszczenia niskiego poziomu w celu przywrócenia do nowego poziomu wydajności.

ocsid80
źródło
Na przykład na Intel X-25 G2, który ma obsługę TRIM (w systemie Windows 7).
Gabe,
0

Słyszałem, że dyski SSD mają tendencję do zwalniania, gdy są prawie pełne, ale zgaduję, że musiałoby pozostać mniej niż 5-10 GB wolnego miejsca, aby poczuć coś takiego. Może kiedy masz mniej niż 1 GB lub coś takiego.

Ben
źródło
0

Systemy plików ogólnie stają się wolne, gdy się zapełniają. Jest to spowodowane fragmentacją. Na pustym dysku możesz być pewien, że możesz zapisać plik w jednym bloku. Gdy system plików się zapełnia, zmniejsza się szansa na dopasowanie pliku do jednego ciągłego bloku, a Ty musisz robić coraz więcej, aby znaleźć dane, przekształcając to, co pierwotnie było sekwencyjnym dostępem do danych w bardziej jak przypadkowy dostęp do danych, a zatem wolniejszy.

goryl
źródło
2
Nie dotyczy to dysków SSD, ponieważ nie ma ruchomych części, dlatego losowe dostępy wydłużają czas dostępu. Być może trzeba będzie przeskakiwać plik z tysiącami losowo rozmieszczonych fragmentów, aby wywrzeć jakikolwiek zauważalny wpływ, głównie z powodu samego systemu operacyjnego, który planuje odczyty i zapisy.
TuxRug
1
Nadal istnieje różnica między odczytami sekwencyjnymi a odczytami losowymi. Na przykład codinghorror.com/blog/2008/06/… daje 26 MB / s dla odczytu sekwencyjnego i 6 Mb / s dla odczytu losowego.
goryl
@TuxRug: Dyski są pogrupowane w bloki kasowania setek kilobajtów lub więcej; po zapisaniu strony (reprezentującej 512 lub 4096 bajtów danych „dysku logicznego”) nie można jej przepisać inaczej niż poprzez usunięcie wszystkich stron w jej bloku. Gdy sektor „dysku logicznego” jest nadpisywany, napęd przydziela poprzednio pustą stronę, aby pomieścić jej nową zawartość i zauważa, że ​​starą stronę można uznać za przestarzałą. Zamiast natychmiastowego usuwania przestarzałych stron, większość dysków zaczeka, aż zajmie miejsce, a następnie wyszuka blok, w którym większość lub wszystkie strony są przestarzałe.
supercat
@TuxRug: Jeśli liczba pustych stron spadnie krytycznie, wydajność dysku będzie proporcjonalna do największej liczby wolnych lub przestarzałych stron w dowolnym bloku [jeśli jest 10 bloków, każdy z 15 przestarzałymi stronami, to dla następnych 150 zapisów napis / cykl usuwania będzie potrzebny co 15. Gdyby były trzy bloki z 50 przestarzałymi stronami, wówczas cykl zapisu / kasowania byłby potrzebny tylko przy każdym 50 zapisie.] Fragmentacja zwiększa prawdopodobieństwo, że skończy się z wieloma blokami, które mają tylko kilka przestarzałych stron.
supercat
0

Innym ważnym czynnikiem jest to, czy i jak dużo nadwyżki zasobów ustawia producent SSD, jak wyjaśniono tutaj . Nadmiarowe udostępnianie oznacza, że ​​część miejsca jest zarezerwowana na działania w tle, takie jak wyrzucanie elementów bezużytecznych, i nie jest dostępna dla użytkownika. Na przykład dysk SSD reklamowany jako 256 GB może faktycznie wynosić 282 GB, jeśli ustawiono 10% nadmiarowego udostępniania.

Jeśli producent dysku SSD był hojny z nadmierną alokacją miejsca, mała ilość miejsca na dysku może nie mieć znacznego wpływu na wydajność, np. Nawet dysk SSD, który wydaje się być w 100% pełny, może w rzeczywistości być wypełniony tylko w 85%. Ale jeśli jesteś w stanie wypełnić dysk SSD prawie w 100%, spowodowałoby to znaczny spadek wydajności.

Krótko mówiąc, wielkość efektu i to, czy będzie zauważalne, zależy od dysku SSD. Zasadniczo jednak dyski SSD działają najlepiej, gdy są w większości puste, a ich wydajność pogarsza się w miarę ich zapełniania, z powodów wyjaśnionych w innych odpowiedziach i w linku.

Debie Downer
źródło