Jakie kroki należy podjąć przed / podczas / po instalacji Ubuntu na dysku SSD, aby zoptymalizować wydajność i zapewnić maksymalną trwałość dysku?
Jakie kroki należy podjąć przed / podczas / po instalacji Ubuntu na dysku SSD, aby zoptymalizować wydajność i zapewnić maksymalną trwałość dysku?
Odpowiedzi:
Z powodzeniem zastosowałem kilka różnych technik, aby ulepszyć sposób, w jaki Ubuntu używa urządzenia pamięci masowej, czy to dysku SSD, czy dysku tradycyjnego.
W przypadku dysków SSD chcesz również zminimalizować liczbę zapisań dysku, ponieważ odczyty nie powinny zwiększać zużycia dysku.
1) Zarządzaj plikiem wymiany
Jeśli nie hibernujesz komputera i masz wystarczająco dużo pamięci RAM, aby uruchomić wszystkie aplikacje, to teoretycznie nie potrzebujesz partycji wymiany.
Jeśli masz połączenie SSD i dysków twardych, umieść partycję wymiany tylko na dyskach twardych.
2) Brak zapisów dla znaczników czasu odczytu (odpowiedni dla dysków SSD i dysków twardych)
Montowanie partycji za pomocą opcji noatime i nodiratime zatrzyma zapisywanie znaczników czasu podczas odczytywania plików i folderów. Te zapisy znaczników czasu nie są zazwyczaj wymagane, chyba że używasz lokalnego klienta serwera poczty, takiego jak mutt. Powodem, dla którego jest to ogólnie zły pomysł, jest to, że każdy odczyt spowoduje zapis podczas aktualizacji znaczników czasu. Skraca to żywotność dysku SSD.
Edytuj plik konfiguracyjny / etc / fstab (ostrożnie - zrób kopię zapasową, aby się upewnić, że uszkodzenie konfiguracji fstab może uniemożliwić działanie systemu):
cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Edytuj opcje montowania partycji, dodając tekst noatime i nodiratime do linii definiujących katalog główny (/) i inne partycje, jeśli je masz (/ home) - Uwaga: jeśli masz partycję / home, zacznij od zmiany tę partycję, jeśli martwisz się o coś
# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2
Przed wprowadzeniem zmian konieczne będzie ponowne uruchomienie komputera
3) Minimalizacja zapisów z systemu operacyjnego i aplikacji
Zakładając, że nie prowadzisz serwera produktu o kluczowym znaczeniu, większość ludzi nie przegląda logów, jeśli coś pójdzie nie tak (zwłaszcza, że poważne błędy są rzadkie dla większości użytkowników Ubuntu). Dlatego możesz skonfigurować Ubuntu, aby wszystkie dzienniki były zapisywane w pamięci RAM, a nie na dysku SSD.
Uwaga: dokonaj następujących zmian tylko po zainstalowaniu całego oprogramowania, którego będziesz używać (zwłaszcza takich rzeczy jak serwer WWW Apache), w przeciwnym razie możesz napotkać pewne problemy z brakującymi katalogami w / var / log
Aby zapoznać się z tłem tego podejścia, zobacz przedłużanie żywotności dysku flash na ubuntu-eee.com
Otwórz / etc / fstab za pomocą edytora (zakładając, że utworzyłeś kopię zapasową pliku / etc / fstab)
gksudo gedit /etc/fstab
Dodaj następujące wiersze na końcu pliku fstab i zapisz:
# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0
Przed wprowadzeniem zmian konieczne będzie ponowne uruchomienie komputera
Zobacz też:
Generalnie nie zawracałbym sobie głowy - obawy o życie SSD są przesadzone. Możesz przeczytać ten szczegółowy artykuł o tym, dlaczego tak naprawdę nie powinieneś się martwić . Krótko mówiąc, obwody wewnątrz nowoczesnych dysków SSD zarządzają wyrównywaniem zużycia i wiedzą, jak to zrobić znacznie lepiej niż ty.
W artykule jest obliczenie żywotności dysku SSD, który odbiera zapisy z ciągłą szybkością 80 M / s. Życie trwa 51 lat . Jest to oparte na technologii z 2007 roku - żywotność dysków SSD będzie teraz dłuższa. I prawie na pewno nie piszesz na dysk SSD z prędkością 80 M / s 24 godziny na dobę.
Jednak spadek wydajności w czasie może stanowić problem, a TRIM jest rozwiązaniem. Istnieją dwie opcje
Musisz sam włączyć automatyczne TRIM . (Zasadniczo dodajesz tę discard
opcję do opcji montowania, pod warunkiem, że używasz ext4.) Znalazłem post na blogu informujący, że opcja odrzucania spowalnia twój system podczas usuwania plików .
Czasami możesz to zrobić ręcznie (lub w zadaniu cron) za pomocą fstrim . Jeśli masz tylko jedną partycję, wszystko, co musisz zrobić, to:
sudo fstrim /
Pamiętaj, że fstrim jest dostępny tylko w wersji 11.10 i nowszej. W przypadku starszych systemów potrzebny będzie wiper.sh
skrypt. Znalazłem skrypt w /usr/share/doc/hdparm/contrib/wiper.sh.gz
moim systemie.
Jeśli zastanawiasz się, problem rozwiązany przez TRIM, opisany przez Wikipedię , to:
Dyski SSD przechowują dane w komórkach pamięci flash, które są pogrupowane w strony, przy czym strony (zwykle 4 kB każda) są zgrupowane w bloki (zwykle 128 stron na blok, łącznie 512 kB). Komórki pamięci flash NAND można zapisać bezpośrednio tylko wtedy, gdy są puste. Jeśli uważa się, że zawierają dane, najpierw trzeba je usunąć, aby można było niezawodnie wykonać operację zapisu. W dyskach SSD operację zapisu można wykonać na poziomie strony, ale z powodu ograniczeń sprzętowych polecenia kasowania zawsze wpływają na całe bloki. W rezultacie zapis danych na nośniku SSD jest bardzo szybki, o ile można użyć pustych stron, ale znacznie spowalnia, gdy wcześniej zapisane strony muszą zostać zastąpione. Ponieważ wymazywanie komórek na stronie jest konieczne, zanim będzie można je ponownie zapisać, ale tylko całe bloki można usunąć, nadpisanie zainicjuje cykl odczytu-skasowania-modyfikacji-zapisu: zawartość całego bloku musi zostać zapisana w pamięci podręcznej, zanim zostanie skutecznie wymazany na nośniku flash, wówczas nadpisana strona jest modyfikowana w pamięci podręcznej, aby bufor w pamięci podręcznej był aktualny, i dopiero wtedy cały blok (ze zaktualizowaną stroną) jest zapisywany na nośniku flash . Zjawisko to znane jest jako wzmocnienie zapisu.
Istnieje kilka punktów:
Wyrównanie:
Często zwraca się uwagę na prawidłowe wyrównanie partycji. Powinno to być równe rozmiarowi bloku SSD. Graj bezpiecznie i dostosuj swoje partycje do granic MiB. Pamiętaj, że nie możesz tego zrobić za pomocą narzędzia do partycji instalatora Ubuntu (który używa MB, a nie MiB), ale możesz uruchomić live CD, użyć Gparted (który używa MiB), a następnie kliknij Zainstaluj, aby użyć skonfigurowanych partycji.
Właściwy harmonogram:
Ważnym punktem jest harmonogram, który powinien być noop
. Możesz ustawić ten harmonogram za pomocą parametru jądra elevator=noop
lub wpisu echo noop > /sys/block/sda/queue/scheduler
w twoim pliku rc.local.
Flagi:
Poleciłbym noatime
idiscard
Tmpfs
Umieszczenie tmp na ramdysku może wydłużyć czas życia ssd. Aby użyć tego, wstaw następujący wiersz w fstab:none /tmp tmpfs defaults 0 0
Ogólnie, jeśli chcesz zagłębić się w ten temat, poleciłbym ten doskonały artykuł wiki.
Kurs szybkiego strojenia dysku SSD w systemie Ubuntu:
system plików
Arch wiki wspomina o kilku preferowanych opcjach systemu plików SSD - jedna z nich jest niestabilna, inne to ext *. Zakładam, że ext4 jest jednym z najlepszych typów.
Uwaga: W przypadku ext4 możesz użyć discard
opcji mount.
fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0
/dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults,noatime,discard,user_xattr 0 2
/dev/sda3 /windows ntfs defaults,noatime,discard,umask=007,gid=46 0 0
Kilka ważnych rzeczy tutaj:
swap
partycji. Obecnie jest potrzebny tylko do hibernacji, ponieważ nowoczesne maszyny mają dość dużą ilość pamięci RAM.noatime
i discard
opcje. Informacje są tutaj .planista
Rozważ przejście z domyślnego programu planującego, którym w większości dystrybucji Linuksa jest cfq (całkowicie uczciwe kolejkowanie), na program noop lub terminarz ostateczny dla dysku SSD. Na przykład, korzystając z harmonogramu noop, po prostu przetwarza żądania w kolejności, w jakiej je otrzymano, bez uwzględnienia, gdzie dane fizycznie znajdują się na dysku. Uważa się, że ta opcja jest korzystna dla dysków SSD, ponieważ czasy wyszukiwania są identyczne dla wszystkich sektorów na dysku SSD.
Dodaj następujące do /etc/rc.local :
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
informacje
/tmp
w pamięci RAM bardzo łatwo jest wyjść z sytuacji braku pamięci , ponieważ wiele programów wykorzystuje /tmp
jako miejsce do przechowywania (na przykład Brasero do przechowywania obrazów DVD).
tmpfs
domyślnie jest to 10% pamięci RAM. Rozmiar można jednak regulować za pomocą size
opcji.
Nie dodawałbym tej linii do twojego folderu fstab, var / tmp ma przetrwać ponowne uruchomienie, a to może powodować problemy.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
Kiedy konfiguruję nowy system, zostawiam wszystkie komentarze do folderu tmp w ten sposób, jeśli coś się stanie, mogę sprawdzić logi i inne rzeczy. Potem, gdy mam główną konfigurację systemu, skasuję je, ale nigdy nie dodam powyższej linii, oto czego używam:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/apt tmpfs defaults,noatime 0 0
A jeśli mam problemy z moim systemem, komentuję je, aby móc sprawdzić wszystko nawet po ponownym uruchomieniu lub wymuszonym ponownym uruchomieniu po zablokowaniu.
Ponadto nie potrzebujesz nodiratime, opcja noatime sama zajmuje się obydwoma.
Jeśli chodzi o TRIM, jeśli twój hw / sw go obsługuje, jest to koniecznością, nie używam discard w fstab. Tworzę codzienny cron, ponieważ mój komputer jest zawsze włączony, wykonując następujące czynności:
gksu gedit /etc/cron.daily/trim
Następnie dodaj to do pliku i zapisz (jeśli nie masz oddzielnej partycji / home na ssd lub masz inne części, które są na ssd, powinieneś dowiedzieć się, jak to zmienić:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
Następnie uczyń plik wykonywalnym przez:
sudo chmod +x /etc/cron.daily/trim
Ja także edytuję mój plik rc.local w ten sposób:
gksu gedit /etc/rc.local
Dodaj to powyżej „exit 0” i poniżej ostatniego #:
# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done
Możesz kopiować i wklejać stąd, aby nie było błędów, dla laika wygląda to z grubsza, nie jest.
Przeczytałem również, że pozostawienie 10% niesformatowanego dysku SSD może pomóc przedłużyć żywotność, która dopiero się okaże. Nie przeczytałem zbyt wiele na ten temat, więc nie mogę poręczyć, jeśli ma to sens.
To najlepszy wszechstronny przewodnik, nie omijał Google przez cały dzień, a potem wymyślił przewodnik, powinieneś to sprawdzić TUTAJ
TRIM pozwala systemowi operacyjnemu poinformować dysk SSD, które bloki danych nie są już uważane za używane i można je usunąć wewnętrznie. Przycinanie umożliwia dyskowi SSD obsługę narzutu wywozu śmieci, co w przeciwnym razie znacznie spowolniłoby przyszłe operacje zapisu do zaangażowanych bloków. 1
W Ubuntu 14.04 dodano nową funkcję do pakietu util-linux , która regularnie automatycznie przycina dyski SSD, ale tylko dyski SSD firmy Intel i Samsung mają domyślnie włączone TRIM, ponieważ niektóre tanie dyski SSD mogą nawet się sflaczać podczas uruchamiania TRIM. 2 Zawartość /etc/cron.weekly/fstrim
Ubuntu 14.04:
#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g. https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all
1 https://en.wikipedia.org/wiki/Trim_%28computing%29
2 Jak włączyć Trim?
Oczywiste jest, że /var/tmp
nie powinno być w tmpfs, ponieważ z definicji jego treść musi być zachowana poza ponownym uruchomieniem:
Ok, „krótka historia”:
Sformatuj jak ext4
podczas instalacji i utwórz małą wymianę ~ 1 GB. Po instalacji edytuj fstab za pomocą sudo gedit /etc/fstab
i dodaj następujący wiersz
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Spowoduje to utworzenie ramdrive dla plików tymczasowych, co obniży starzenie. Dodaj także noatime,nodiratime,discard
do linii ext4 po domyślnych. Spowoduje to również zmniejszenie zużycia i włączenie funkcji TRIM. Zapisz i uruchom ponownie.
Istnieje kilka dobrych informacji Jak dostosować i zoptymalizować SSD dla Ubuntu, Linux Mint z http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html ty może być zainteresowanym
Użyj wstępnego ładowania
Aby zainstalować wstępne ładowanie w dystrybucji Ubuntu, Linux Mint lub Debian
# apt-get update && apt-get install preload
Wyłącz swap
Aby zmienić ustawienie zamiany:
$ su -
# nano /etc/sysctl.conf
I dodaj tę linię do pliku sysctl.conf.
vm.swappiness = 10
Wymagany jest UPS. W /etc/sysctl.conf
pliku
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
Znajdź demona pliku konfiguracyjnego, zwykle /etc/syslog.conf
или, /etc/rsyslog.d/
a wszystkie ścieżki formularza /var/log/
zmienią się, wpisując przed znakami minus („-”).
/var/log/mail.err
Po
mail.err -/var/log/mail.err
użyj FS btrfs
i skorzystaj z -o ssd
opcji
Jak dostosować i zoptymalizować dysk SSD dla systemu Ubuntu, Linux Mint
Włącz TRIM
TRIM (polecenie przycinania informuje system operacyjny, które bloki SSD nie są używane i można je usunąć)
Najpierw wykonaj kopię zapasową fstab na wypadek, gdyby coś się stało.
# cp /etc/fstab ~/fstab.bk
Edytuj plik fstab
# nano /etc/fstab
Dodaj discard do dysków SSD lub partycji po ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime
noatime i nodiratime to opcje montowania w systemie Linux dla systemu plików Linux. Noatime wyłącza aktualizacje Atime w systemie plików, a nodiratime wyłącza aktualizacje Atime w systemie katalogowym. Dodanie noatime i nodiratime znacznie zmniejszy obciążenie ssd oznacza wzrost wydajności.
Edytuj plik fstab
# nano /etc/fstab
Dodaj noatime, nodiratime do dysków SSD lub partycji po ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Sugeruję, aby umieszczać tylko te rzeczy, które są odczytywane w czasie rozruchu na dysku SSD, wszelkie aplikacje, które wymagają dużo czasu do załadowania. Dane i dzienniki i inne niekrytyczne rzeczy, które znajdowałbym na normalnym dysku twardym. Możesz również skonfigurować swoje Ubuntu, aby ładowało się tylko duże initramfs z SSD w czasie uruchamiania i nie zapisują zmian w ssd. Ma to tę zaletę, że zmiany w tej partycji nie są trwałe, co jest jak ochrona twojego systemu rozruchowego. Dlatego oczywiście potrzebowałbyś dużo więcej pamięci RAM.
Chciałbym np. Umieścić partycje /, / etc, / usr, / boot, / lib 32/64 na SSD, podczas gdy coś takiego
/ opt, / bin, / sbin, / root, / home, a nawet zamiana (zwiększenie pamięci RAM !!!) na HDD
Wikipedia mówi:
Jądro Linux obsługuje funkcję TRIM, począwszy od wersji 2.6.33. System plików ext4 jest obsługiwany po zamontowaniu za pomocą parametru „discard”. Najnowsze narzędzia dyskowe (a zatem także oprogramowanie instalacyjne, które z nich korzysta) również stosuje prawidłowe wyrównanie partycji.
W przypadku kopii zapasowych istnieje wiele sposobów, z których najprostszym jest (r) synchronizacja plus zadanie cron.
/root
, /home
i wymiany należy umieścić na SSD dla prędkości, bo to przeważnie tylko do odczytu. Aby zwiększyć szybkość, włóż /var
także dysk SSD.
/
Partycji dla Kubuntu sid zajmuje 4.5GB na moim SSD. 20 GB wystarcza na /
minus /home
. Wysiłki na rzecz ulepszenia układu systemu plików, rozłożenia go na kilka partycji nie są tego warte.
tmpfs
wiersze są komentowane, więc dlaczego dodanie tych wierszy miałoby jakąkolwiek różnicę? Czy musimy to dodać bez komentarza?