9Sep
Ubuntu chce włączyć domyślnie TRIM dla dysków SSD w Ubuntu 14.04.Innymi słowy, Ubuntu nie używa już TRIM, więc twój dysk SSD zwalnia z biegiem czasu. Ale dlaczego Ubuntu nie używa już TRIM?
Ta wiadomość może zaskoczyć wielu ludzi, którzy założyli, że Ubuntu i inne dystrybucje Linuksa już używają TRIM.TRIM zapobiega spowolnieniu dysków SSD i jest niezbędnym elementem utrzymania dysków SSD.
Dlaczego TRIM jest ważny
Omówiliśmy, dlaczego TRIM jest ważny wcześniej. Po usunięciu pliku na starym, magnetycznym dysku twardym komputer po prostu zaznacza ten plik jako usunięty. Dane pliku przechowują się na dysku twardym - dlatego usunięte pliki można odzyskać.Komputer ostatecznie nadpisze usunięte pliki, gdy nadpisze ich sektory z nowymi danymi.
Dyski półprzewodnikowe( SSD) działają inaczej. Za każdym razem, gdy piszemy plik na dysk SSD, komputer musi najpierw usunąć dowolne dane z sektorów, do których zapisuje dane. Nie można po prostu "nadpisać" sektorów w jednej operacji - najpierw trzeba je wyczyścić, a następnie pisać do pustych sektorów.
Oznacza to, że dysk SSD zwalnia z biegiem czasu. Pisanie do sektorów SSD będzie szybkie za pierwszym razem. Po usunięciu niektórych plików i próbie napisania do nich ponownie, będzie to trwać dłużej. Jest to duży powód, dla którego oryginalny Nexus 7 Google'a zwolnił tak bardzo z biegiem czasu. Google naprawiło to poprzez wdrożenie TRIM w Androidzie 4.3.(Android używa także jądra Linux.)
Przy włączonym TRIM system operacyjny przekazuje SSD za każdym razem, gdy usuwa plik. Napęd może następnie usunąć sektory zawierające zawartość pliku, więc zapisywanie do sektorów będzie szybkie w przyszłości.
Innymi słowy, jeśli nie używasz polecenia TRIM, dysk SSD zwolni z czasem. Właśnie dlatego nowoczesne systemy operacyjne, w tym Windows 7+, Mac OS X 10.6.8+ i Android 4.3+ używają TRIM.TRIM został zaimplementowany w Linuksie już w grudniu 2008 roku, ale Ubuntu nie używa go domyślnie.
Dlaczego domyślnie nie jest Ubuntu TRIM?
Prawdziwym powodem, dla którego Ubuntu nie obsługuje domyślnie SSD TRIM jest to, że implementacja TRIM jądra systemu Linux jest powolna i powoduje słabą wydajność podczas normalnego użytkowania.
W systemach Windows 7 i 8 system Windows wysyła polecenie TRIM za każdym razem, gdy usuwa plik, informując dysk, aby natychmiast usunął bity pliku. Linux obsługuje to, gdy systemy plików są montowane z opcją "odrzuć".Jednak Ubuntu - i inne dystrybucje - nie robią tego domyślnie ze względu na wydajność.Wiki
OpenSUSE zawiera szczegółowe informacje od programisty bardziej zaznajomionego z jądrem Linux niż my. Jest nieco przestarzały, ale prawdopodobnie nadal jest prawdą jeśli chodzi o wydajność:
"Implementacja jądra w czasie rzeczywistym w 11.2, 11.3 i 11.4 nie jest zoptymalizowana. Spec.domaga się, aby trim obsługiwał wektoryzowaną listę zakresów przycinania, ale od jądra systemu 3.0 trymowanie jest wywoływane tylko przez jądro z pojedynczym zakresem odrzuceń / przycinania, a przy obecnych dyskach SSD z połowy 2011 r. udowodniono, że powoduje to spadek wydajności zamiast zwiększenia wydajności. Istnieje kilka powodów, aby używać jądra w czasie rzeczywistym, odrzucić wsparcie z jądrem pre-3.1.Nie wiadomo, kiedy funkcja wyrzucania jądra zostanie zoptymalizowana, aby działać korzystnie z dyskami SSD obecnej generacji. "[Źródło]
Innymi słowy, jądro Linux obsługuje takie polecenia TRIM w czasie rzeczywistym w powolny, nieoptymalizowany sposób. Włączenie TRIM, podobnie jak w przypadku systemu Windows - to znaczy użycie opcji "odrzuć" - powoduje, że system faktycznie staje się wolniejszy, niż gdyby TRIM w ogóle nie był używany. Ubuntu i inne dystrybucje Linuksa domyślnie nie pozwalają na "wyrzucanie" systemów plików, a ty też nie powinieneś.
Istnieje inny sposób
Ponieważ operacja TRIM w jądrze systemu Linux w czasie rzeczywistym "discard" nie działa dobrze, większość dystrybucji Linuksa - w tym Ubuntu - nie używa automatycznie TRIM.Android nie używał TRIM aż do Androida 4.3.
Ale istnieje inny sposób korzystania z TRIM.Zamiast po prostu wydawać komendę TRIM za każdym razem, gdy plik jest usuwany, można użyć funkcji FITRIM.Dzieje się tak za pośrednictwem polecenia fstrim. Zasadniczo polecenie fstrim analizuje system plików i informuje dysk, które bloki nie są już potrzebne, aby dysk mógł je odrzucić.To powoduje, że TRIM z operacji w czasie rzeczywistym do zaplanowanego zadania. Innymi słowy, fstrim może wykonywać TRIM jako zadanie cron. Nie ma powodu, żeby tego nie robić.Nie spowolni niczego;to tylko kolejne zadanie sprzątania, które system musi wykonać zgodnie z harmonogramem.
W rzeczywistości jest to podejście, które Google zastosowało z systemem Android 4.3.Android uruchamia od czasu do czasu zadanie fstrim, aby TRIM systemu plików, naprawiając problem spowalniający wszystkie oryginalne Nexusy 7.
Ubuntu szuka również możliwości włączenia TRIM automatycznie przez system regularnie uruchamiający fstrim. Będzie to prawdopodobnie część Ubuntu 14.04, więc użytkownicy Ubuntu nie będą zmuszeni do radzenia sobie z degradacją wydajności SSD ani nie będą uruchamiać fstrim na własną rękę.
Jak włączyć TRIM
Nie zalecamy montowania systemów plików przy pomocy operacji "odrzuć", ponieważ prawdopodobnie spowolni to działanie podczas normalnego użytkowania. Możesz jednak użyć TRIM samodzielnie, czasami uruchamiając komendę fstrim lub tworząc własne cronjob, które uruchamia fstrim zgodnie z harmonogramem.
Aby WYPEŁNIĆ SSD na Ubuntu, wystarczy otworzyć terminal i uruchomić następującą komendę:
sudo fstrim -v /
Możesz uruchomić powyższe polecenie sporadycznie, aby zapobiec obniżeniu wydajności na SSD.Częstotliwość uruchamiania zależy od tego, jak często pliki są usuwane z dysku SSD.Jeśli spróbujesz uruchomić polecenie na dysku, który nie obsługuje TRIM, zobaczysz błąd.
Jeśli chcesz regularnie uruchamiać TRIM, możesz po prostu utworzyć cronjob, który uruchamia komendę fstrim. Oto jak wykonać zadanie barebone cron, które zrobi to automatycznie.
Najpierw uruchom następujące polecenie, aby otworzyć edytor tekstu nano z uprawnieniami root'a:
sudo nano /etc/cron.daily/ fstrim
Wpisz następujący kod do pliku:
#!/bin/ sh
fstrim /
Zapisz plik, naciskając Ctrl + O i naciśnij klawisz Enter, aby potwierdzić.Naciśnij Ctrl + X, aby zamknąć nano po zapisaniu pliku.
Ostatnia, uruchom następującą komendę, aby skrypt był wykonywalny:
sudo chmod + x /etc/cron.daily/ fstrim
Ubuntu będzie teraz uruchamiał fstrim zgodnie z harmonogramem, tak jak robi to inne zadania konserwacji systemu.
Zauważ, że TRIM jest obsługiwany tylko w nowoczesnych systemach plików, więc potrzebujesz czegoś takiego jak ext4, a nie ext3 lub ext2.Jeśli nie wiesz, jakiego systemu plików używasz, nie martw się - domyślnie wybierany jest ext4.
Wiele z tych porad dotyczy także innych dystrybucji Linuksa. Chociaż Linux już dawno wdrożył obsługę TRIM w jądrze, jego obsługa TRIM wydaje się nigdy domyślnie wyłączona dla typowych użytkowników w dystrybucjach Linuksa.
Image Credit: Mace Ojala na Flickr( przycięta)