TRIM automatyczny a TRIM manualny

13

Obecnie próbuję dowiedzieć się, jak przycinać za pomocą mojego nowego TP i zastanawiałem się nad różnicą ręcznego / internetowego przycinania.

Oto moja konfiguracja:

ThinkPad T430s z dyskiem SSD Samsung 830, 128GB i Xubuntu 12.10, oto kilka wyjść do sprawdzenia, czy trym będzie działał w moim systemie (mam je tutaj: http://wiki.ubuntuusers.de/SSD/TRIM )

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

Najpierw próbowałem przycinania online: Jak włączyć TRIM?

mój fstab z dodanym odrzuceniem:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Próbowałem sprawdzić, czy to działa (ale nie dostaję żadnych zer, gdy próbuję z / dev / sda), ale odkryłem, że ta metoda jest możliwa tylko z dyskiem SSD typu 2 i wydaje mi się, że mam typ 3. Więc ja nie wiem czy to działa czy nie.

Ubuntuwiki (pierwszy link) zaleca ręczne przycinanie, więc ustawiam codzienną cronjob zamiast odrzucać:

#!/bin/sh
LOG=/var/log/batched_discard.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

artykuł na wiki sugeruje co tydzień lub codziennie. Teraz na moje pytania:

Jak często wykonuje automatyczne przycinanie? Jak często jest zalecany? Przycinanie online czy ręczne?

Dziękuję za pomoc

Eike Cochu
źródło

Odpowiedzi:

4

Różnica między automatycznym i ręcznym przycinaniem polega na tym, że automatyczne przycinanie (przy użyciu discardopcji montażu) przycina zwalniane bloki podczas synchronizacji po usunięciu dowolnego pliku, podczas gdy ręczne przycinanie (przy użyciu fstrim) przycina jednocześnie całą wolną przestrzeń.

Testowanie

Jednym ze sposobów sprawdzenia, czy działa automatyczne przycinanie, byłoby utworzenie i usunięcie dużego pliku:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

Jeśli automatyczne odrzucanie działa, ponowne ręczne przycinanie nie przycina wielu bloków, ponieważ powinny one zostać już przycięte. Uruchom sudo discard -vna systemie plików i sprawdź, ile bloków zostało przyciętych.

Rekomendacje

Co do tego, co jest zalecane: z mojego doświadczenia, automatyczne przycinanie zabija wydajność. Jest to jednak prawdopodobnie zależne od sprzętu; na twoim dysku może być w porządku.

Jeśli korzystasz z ręcznego przycinania, jak często, pomyśl o szybkości zapisywania danych w typowym obciążeniu, w porównaniu do ilości wolnego miejsca na dysku SSD. Chcesz przycinać wystarczająco często, zanim dysk zapełni się usuniętymi danymi. Jeśli na dysku SSD jest przeważnie wolne miejsce lub obciążenie dysku jest niewielkie, przycinanie od czasu do czasu (co tydzień lub nawet dłużej) powinno wystarczyć. Jeśli Twój dysk SSD jest w większości zapełniony lub np. Często edytujesz pliki wideo, musisz częściej przycinać.

Ślimak mechaniczny
źródło
2

Nie jestem inżynierem zajmującym się magazynowaniem i mam swoje własne zmartwienia , ale mogę zaproponować przydatne harmonogramy. Jestem pewien, że TRIM nie powoduje niepokojącego zużycia dysku SSD. Po prostu utrzymanie porządku, że Twój dysk będzie musiał przejść, zanim będzie mógł rozpocząć recykling bloków. Najlepszy harmonogram TRIMmingu wsadowego zależy od użycia; myślę, że jest to funkcja pisania częstotliwości i wolnego miejsca. Mając to na uwadze, odłączę pracę crona i fstrim -vręcznie przez kilka dni.

Myślę, że sztuczka polega na stworzeniu harmonogramu, w którym pakiet TRIM przygotowuje dysk SSD do zapisu, zanim zużyte bloki będą musiały zostać poddane recyklingowi w celu wykonania normalnej operacji zapisu, co obniży wydajność. Poczekaj 24 godziny i fstrim. Jeśli twierdzi, że przyciął znacznie mniej bloków niż było wolnego miejsca, prawdopodobnie rzadziej rzadziej TRIMming partii.

zapora
źródło
2

Tracę dysk SSD przy każdym uruchomieniu. Zrobiłem plik sh, który nazywa się 20 sekund po uruchomieniu. Zdecydowałem się wyświetlić dane wyjściowe z fstrim w powiadomieniu systemowym zamiast pliku dziennika.

najpierw utwórz trim.shplik w swoim ~/binkatalogu

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

Teraz musimy dać użytkownikom uprawnienia do uruchamiania fstrim, abyśmy nie musieli wpisywać hasła. Otwórz plik sudoers za pomocą visudo i dodaj następujący wiersz:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

Jeśli dołączysz home/yourusername/binfolder do swojego folderu, $PATHmożesz również przycinać go ręcznie w terminalu za pomocą polecenia „przycinanie” bez potrzeby podawania hasła.

Teraz możesz dodać swój skrypt do aplikacji startowych i określić opóźnienie. Musisz się ponownie wylogować / zalogować, aby załadować nowy wpis sudoers.

kasper Taeymans
źródło