Ubuntu chce włączyć TRIM dla dysków SSD domyślnie 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.
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, w których zapisuje dane. Nie można tak po prostu "nadpisywać" 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, wdrażając TRIM w systemie Android 4.3. (Android używa także jądra Linux.)
Po włączeniu 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 TRIM, dysk SSD zwalnia z biegiem czasu. 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.
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ą "débis". Jednak Ubuntu - i inne dystrybucje - nie robią tego domyślnie ze względu na wydajność.
Wiki wiki OpenSUSE zawiera szczegółowe informacje od programisty bardziej zaznajomionego z jądrem systemu Linux niż my. To trochę przestarzałe, ale prawdopodobnie nadal jest prawdziwe, 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ł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, czyli użycie opcji Ęddardta, 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 zezwalają domyślnie "domyślnie" na systemy plików, a ty też nie powinieneś.
Ponieważ jądro systemu Linux działa w czasie rzeczywistym, operacja Ęúdiscard TRIM nie działa dobrze, większość dystrybucji Linuksa - w tym Ubuntu - nie korzysta automatycznie z TRIM. Android nie używał TRIM aż do Androida 4.3.
Ale istnieje inny sposób korzystania z TRIM. Zamiast po prostu wydawać polecenie 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 rozważa również włączenie TRIM automatycznie, ponieważ system regularnie uruchamia 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 też nie będą uruchamiać fstrim na własną rękę.
Nie zalecamy montowania systemów plików przy użyciu operacji "Dyskusja", ponieważ prawdopodobnie spowoduje to spowolnienie działania 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ące polecenie:
sudo fstrim -v /
Możesz uruchomić powyższe polecenie sporadycznie, aby zapobiec obniżeniu wydajności na dyskach 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 uruchomi dla Ciebie polecenie 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.
Last, uruchom następujące polecenie, aby skrypt był wykonywalny:
sudo chmod + x /etc/cron.daily/fstrim
Ubuntu będzie teraz uruchamiać fstrim zgodnie z harmonogramem, tak samo jak inne zadania związane z konserwacją 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.
Zdjęcie: Mace Ojala na Flickr (przycięte)