Główna » jak » Ubuntu nie obsługuje domyślnie dysków SSD, dlatego nie należy ich włączać

    Ubuntu nie obsługuje domyślnie dysków SSD, dlatego nie należy ich włączać

    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.

    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 oznacza 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 firmy Google zwolnił tak bardzo w czasie. Google naprawił to, wdrażając TRIM w systemie Android 4.3. (Android używa również jądra Linux.)

    Po włączeniu TRIM system operacyjny przekazuje komunikat 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.

    Dlaczego nie Ubuntu domyślnie 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 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. apeluje o wykończenie obsługujące wektoryzowaną listę zakresów przycinania, ale od wersji 3.0 trim jest wywoływany tylko przez jądro z pojedynczym zasięgiem discard / trim, 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ć dobrze 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 nie pozwalają domyślnie "odrzucić" systemów plików, a ty też nie powinieneś.

    Jest inny sposób

    Ponieważ operacja TRIM w jądrze Linuksa w czasie rzeczywistym "odrzuć" 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 zmienia TRIM z operacji w czasie rzeczywistym w zaplanowane zadanie. Innymi słowy, fstrim może wykonywać TRIM jako zadanie cron. Nie ma powodu, aby 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 przyjęte przez Google w wersji 4.3. Android uruchamia od czasu do czasu zadanie fstrimowe, aby TRIM system plików, naprawiając problem spowalniający wszystkie oryginalne Nexus 7.

    Ubuntu szuka również możliwości włączenia 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 obniżaniem wydajności SSD lub uruchamiania fstrim na własną rękę.

    Jak włączyć TRIM

    Nie zalecamy montowania systemów plików przy użyciu funkcji "odrzuć", ponieważ prawdopodobnie spowolni to działanie podczas normalnego użytkowania. Możesz jednak użyć TRIM samodzielnie, czasami uruchamiając polecenie fstrim lub tworząc własne cronjob, które uruchamia fstrim w harmonogramie.

    Aby WYPEŁNIĆ SSD na Ubuntu, wystarczy otworzyć terminal i uruchomić następujące polecenie:

    sudo fstrim -v /

    Możesz czasami uruchamiać powyższe polecenie, aby zapobiec obniżeniu wydajności dysków SSD. Częstotliwość uruchamiania zależy od częstotliwości usuwania plików 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 obsługiwał obsługę TRIM w jądrze już dawno temu, jego obsługa TRIM wydaje się nie być domyślnie włączona dla typowych użytkowników w dystrybucji Linuksa.

    Zdjęcie: Mace Ojala na Flickr (przycięte)