Garbage collection (GC) to proces sprzątania, który SSD prowadzi sam z siebie w tle: zbiera nadal aktualne dane z częściowo nieważnych bloków, przenosi je w jedno miejsce, a opróżnione bloki kasuje i odkłada jako gotowe do zapisu. Bez tego dysk po kilku tygodniach użytkowania zwolniłby dramatycznie.
Skąd bierze się problem
Pamięć NAND ma asymetrię, z którą nic nie da się zrobić: zapis idzie stronami (typowo 4-16 KB), a kasowanie tylko całymi blokami (1-4 MB, czyli setki stron naraz). Nie da się skasować jednej strony w środku bloku. Po jakimś czasie masz więc mnóstwo bloków, w których połowa stron to śmieci, a połowa to żywe dane — i żadnego z nich nie można ot tak wyczyścić.
Garbage collection wybiera takie bloki, przepisuje z nich to, co jeszcze potrzebne, i kasuje resztę. Kontroler robi to najchętniej w chwilach bezczynności, żeby nie wchodzić Ci w drogę podczas pracy.
Związek z TRIM i overprovisioningiem
Te trzy rzeczy grają w jednej drużynie. TRIM mówi dyskowi, które strony są śmieciem — bez niego GC musiałoby traktować wszystko jako żywe dane i przepisywać je w kółko. Overprovisioning daje wolne bloki, w których jest gdzie te dane przełożyć. Im mniej rezerwy, tym bardziej rośnie write amplification: żeby zapisać 1 GB, dysk fizycznie zapisuje 2-3 GB i szybciej się zużywa.
Praktyczne wnioski
- Nie wyłączaj komputera od razu po ogromnym transferze — daj dyskowi kilka minut na uporządkowanie się.
- Trzymaj 10-15% wolnego miejsca; zapchany pod korek SSD ma GC utrudnione i mocno zwalnia.
- Nie defragmentuj SSD — to tylko generuje niepotrzebne zapisy.
Pojęcia powiązane: TRIM, overprovisioning, wear leveling.