Come ottimizzo il sistema operativo per gli SSD?

143

Quali misure dovrebbero essere prese prima / durante / dopo l'installazione di Ubuntu su Solid State Drive per ottimizzare le prestazioni e garantire la massima durata del disco?

    
posta Lars Haugseth 06.08.2010 - 16:03

13 risposte

106

Ho utilizzato con successo diverse tecniche diverse per migliorare il modo in cui Ubuntu utilizza il dispositivo di archiviazione, sia esso a stato solido o unità tradizionale.

Per gli SSD stai cercando di ridurre al minimo il numero di volte in cui l'unità viene scritta, poiché le letture non dovrebbero aggiungere usura al drive.

1) Gestisci il file di scambio

Se non si iberna il computer e si dispone di un'ampia memoria RAM per eseguire tutte le applicazioni, in teoria non è necessaria una partizione di swap.

Se hai un mix di SSD e dischi rigidi, posiziona la partizione di swap solo sui dischi rigidi.

2) Nessuna scrittura per i timestamp di lettura (adatta per SSD e hard disk)

Il montaggio delle partizioni con le opzioni noatime e nodiratime interromperà le scritture di timestamp durante la lettura di file e cartelle. Queste scritture di timestamp non sono generalmente richieste a meno che non si utilizzi un client di posta locale come mutt. Il motivo per cui questa è generalmente una cattiva idea, è perché ogni lettura produrrà una scrittura durante l'aggiornamento dei timestamp. Questo diminuisce la vita del SSD.

Modifica il tuo file di configurazione / etc / fstab (con attenzione - fai un backup per essere sicuro che la rottura della configurazione di fstab possa impedire il funzionamento del sistema):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Modifica le opzioni di montaggio per le tue partizioni aggiungendo il testo noatime e nodiratime alle linee che definiscono la tua root (/) e altre partizioni se ne hai (/ home) - Nota: se hai una partizione / home , inizia con quello cambiando solo quella partizione se sei preoccupato di rompere qualcosa

# / 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

Sarà necessario riavviare il computer prima che queste modifiche abbiano effetto

3) Riduzione al minimo delle scritture dal sistema operativo e dalle applicazioni

Supponendo che non si stia utilizzando un server di prodotto mission-critical, la maggior parte delle persone non guarda i log se qualcosa va storto (specialmente se gli errori gravi sono rari per la maggior parte degli utenti di Ubuntu). Pertanto puoi configurare Ubuntu in modo che tutti i registri vengano scritti nella memoria RAM piuttosto che nell'SSD.

Nota: apporta le seguenti modifiche solo quando hai installato tutto il software che stai per usare (specialmente cose come il server web Apache), altrimenti potresti riscontrare alcuni problemi con le directory mancanti in / var / log

Per informazioni su questo approccio, vedi prolunga la durata della tua chiavetta USB su ubuntu- eee.com

Apri / etc / fstab con un editor (ammesso che tu abbia eseguito il backup del file / etc / fstab)

gksudo gedit /etc/fstab

Aggiungi le seguenti righe alla fine del file fstab e salva:

# 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

Sarà necessario riavviare il computer prima che queste modifiche abbiano effetto

Vedi anche:

risposta data jr0cket 08.08.2010 - 15:09
90

Vita SSD

Generalmente non mi preoccuperei - le preoccupazioni sulla vita SSD sono esagerate. Puoi leggere questo articolo dettagliato sul motivo per cui non dovresti preoccuparti . In breve, i circuiti nei moderni SSD gestiscono il livellamento dell'usura per te e sanno come farlo molto meglio di te.

Nell'articolo è un calcolo della durata di un SSD che sta ricevendo scritture a un tasso continuo di 80 M / s. La vita è 51 anni . Questo si basa sulla tecnologia del 2007 - la vita SSD sarà più lunga ora. E quasi certamente non scrivi al tuo SSD a 80M / s 24 ore al giorno.

Prestazioni SSD

Tuttavia, il degrado delle prestazioni nel tempo può essere un problema e TRIM è la soluzione. Ci sono due opzioni

  • TRIM automatico / online, alias scarto
  • TRIM manuale

Devi abilitare il TRIM automatico da solo . (Fondamentalmente si aggiunge l'opzione discard alle opzioni di mount, a condizione che si stia utilizzando ext4.) Ho trovato un post sul blog che riporta l'opzione di scarto rallenta il sistema quando si eliminano i file .

Puoi occasionalmente farlo manualmente (o in un cron job) usando fstrim . Se hai solo una partizione, tutto ciò che devi fare è:

sudo fstrim /

Si noti che fstrim è disponibile solo in 11.10 e successivi. Per i sistemi precedenti è necessario lo script wiper.sh . Ho trovato lo script in /usr/share/doc/hdparm/contrib/wiper.sh.gz sul mio sistema.

Se ti stai chiedendo, il problema risolto da TRIM, come descritto da Wikipedia , è:

  

Gli SSD memorizzano i dati nelle celle di memoria flash raggruppate in pagine, con le pagine (in genere 4 kB ciascuna) raggruppate in blocchi (in genere 128 pagine per blocco, per un totale di 512 kB). Le celle di memoria flash NAND possono essere scritte direttamente solo quando sono vuote. Se si ritiene che contengano dati, è necessario prima cancellare i contenuti prima che un'operazione di scrittura possa essere eseguita in modo affidabile. In SSD, un'operazione di scrittura può essere eseguita a livello di pagina, ma a causa di limitazioni hardware, i comandi di cancellazione riguardano sempre interi blocchi. Di conseguenza, scrivere i dati su supporti SSD è molto veloce purché le pagine vuote possano essere utilizzate, ma rallenta notevolmente una volta che le pagine scritte in precedenza devono essere sovrascritte . Poiché una cancellazione delle celle nella pagina è necessaria prima che possa essere riscritta, ma solo interi blocchi possono essere cancellati, una sovrascrittura avvierà un ciclo read-erase-modify-write: i contenuti dell'intero blocco hanno per essere memorizzato nella cache prima che venga effettivamente cancellato sul supporto flash, la pagina sovrascritta viene modificata nella cache in modo che il blocco memorizzato nella cache sia aggiornato e solo allora l'intero blocco (con la pagina aggiornata) viene scritto sul supporto flash . Questo fenomeno è noto come amplificazione di scrittura.

    
risposta data Hamish Downer 08.08.2010 - 21:03
20

Ci sono diversi punti:

Allineamento:

Ciò che viene spesso sottolineato è il diritto allineamento della partizione. Questo dovrebbe essere uguale alla dimensione del blocco dell'SSD. Gioca al sicuro e allinea le tue partizioni ai confini del MiB. Nota che non puoi farlo con lo strumento di partizione dell'installer di Ubuntu (che usa MB non MiB), ma puoi avviare il live CD, usare Gparted (che usa MiB), quindi fare clic su Installa per usare le partizioni che hai impostato.

Lo schedulatore giusto:

Un punto importante è lo programmatore che dovrebbe essere noop . Puoi impostare questo programmatore tramite kernelparameter elevator=noop o tramite una voce echo noop > /sys/block/sda/queue/scheduler in te rc.local.

mountflags:

Consiglierei noatime e discard

Tmpfs

Mettere tmp su un ramdisk può aumentare la durata della ssd. Per utilizzarlo, inserisci la seguente riga in fstab: none /tmp tmpfs defaults 0 0

Generalmente, se vuoi approfondire questo argomento, ti consiglio questo eccellente articolo wiki.

    
risposta data Sebastian Rühl 03.02.2011 - 22:28
16

Corso di ottimizzazione rapida per il tuo SSD su Ubuntu:

filesystem

Arch wiki menziona alcune opzioni preferibili per il file system SSD - uno di questi è instabile, altri sono ext * ones. Presumo che ext4 sia una delle migliori scelte.
Nota: in caso di ext4 potresti voler utilizzare l'opzione di montaggio discard .

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

Poche cose importanti qui sono:

  • Per i sistemi con & gt; = 2 giga di memoria, è desiderabile localizzare / tmp nella RAM.
  • Nessuna swap partizione. Al giorno d'oggi è necessario solo per la sospensione, dal momento che le macchine moderne hanno una quantità piuttosto grande di RAM.
  • noatime e discard opzioni. L'informazione è qui .

scheduler

Considera di passare dallo schedulatore predefinito, che nella maggior parte delle distro Linux è cfq (completamente equa in coda), al programmatore di noop o di scadenza per un SSD. L'utilizzo dello strumento di pianificazione noop, ad esempio, elabora semplicemente le richieste nell'ordine in cui vengono ricevute, senza considerare il punto in cui i dati risiedono fisicamente sul disco. Questa opzione è considerata vantaggiosa per gli SSD poiché i tempi di ricerca sono identici per tutti i settori dell'SSD.

Aggiungi in /etc/rc.local :

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

informazioni

one due

    
risposta data Andrejs Cainikovs 09.12.2011 - 18:24
8

4) abilita il TRIM automatico

Se il tuo SSD lo supporta, dovresti anche abilitare il TRIM automatico (come descritto qui )

    
risposta data Uli 31.12.2010 - 00:37
3

Non aggiungerei questa riga al tuo fstab, la cartella var / tmp è pensata per sopravvivere ai riavvii e questo potrebbe causare problemi.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Quando configuro il nuovo sistema lascio tutta la cartella tmp commentata in questo modo se succede qualcosa, posso controllare i log e tutto il resto. Poi, una volta che avrò configurato il sistema principale, anniderò i loro commenti, ma non aggiungo mai la riga sopra, ecco cosa uso:

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

E se ho problemi con il mio sistema, commento a quelli che sono in grado di controllare tutto anche dopo un riavvio o un riavvio forzato dopo un blocco.

Inoltre non hai bisogno di nodiratime, l'opzione noatime si prende cura di entrambi da sola.

Per quanto riguarda TRIM, se il tuo hw / sw lo supporta, è un must, non uso scard in fstab. Creo un cron giornaliero, perché il mio PC è sempre acceso, in questo modo:

gksu gedit /etc/cron.daily/trim

Quindi aggiungi questo file e salva (Se non hai una partizione separata / home su ssd, o hai altre parti su ssd dovresti avere l'idea di come modificarlo:

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

Quindi rendi il file eseguibile da:

sudo chmod +x /etc/cron.daily/trim

Inoltre, ho modificato il mio rc.local in questo modo:

gksu gedit /etc/rc.local

Aggiungi questo sopra "exit 0" e sotto l'ultimo #:

# 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

Puoi copiare e incollare da qui in modo che non ci siano errori, per il profano sembra fuori whack, non lo è.

Ho anche letto che lasciare il 10% della tua unità SSD non formattata può aiutare a prolungare la vita, che resta da vedere. Non ho letto molto in questo modo, quindi non posso garantire se ha senso farlo.

Questa è la migliore guida a livello mondiale, non ha sfogliato Google per un giorno e poi ha inventato una guida, dovresti verificarlo QUI

    
risposta data JohnRB 29.07.2013 - 00:53
3

TRIM consente a un sistema operativo di informare un SSD che blocchi di dati non sono più considerati in uso e possono essere cancellati internamente. La funzione di ritaglio consente all'unità SSD di gestire il sovraccarico della raccolta di dati inutili, che altrimenti rallenterebbe in modo significativo le operazioni di scrittura future sui blocchi coinvolti. 1

In Ubuntu 14.04 è stata aggiunta una nuova funzionalità al pacchetto util-linux che ritaglia automaticamente gli SSD automaticamente, ma solo gli SSD Intel e Samsung hanno TRIM abilitato di default, perché alcuni SSD economici possono persino eseguire il brick da soli quando si esegue TRIM. 2 Il contenuto di /etc/cron.weekly/fstrim in 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 link
2 Come Trim è abilitato?

    
risposta data karel 25.12.2013 - 02:52
2

È chiaro che /var/tmp non dovrebbe essere in tmpfs poiché per definizione il contenuto deve essere preservato oltre i riavvii:

  • Differenze tra TMP e VarTMP
risposta data user95602 09.10.2012 - 18:12
2

Ok "long story short":

  1. Sì. È come un normale hdd. Qui è una buona panoramica.
  2. Alcuni extra speciali, che coprirò.
  3. Abbastanza buono. Lo uso con un server.

Formatta come ext4 durante l'installazione e crea un piccolo scambio ~ 1 GB. Dopo l'installazione, modifica fstab con sudo gedit /etc/fstab e aggiungi la seguente riga

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Questo creerà un ramdrive per i tuoi file temporanei, che ridurrà l'invecchiamento. Aggiungi anche noatime,nodiratime,discard alla tua linea ext4 dopo i default. Ciò diminuirà anche l'usura e abiliterà la funzione TRIM. Salva e riavvia.

    
risposta data gajdipajti 24.04.2012 - 00:06
2

Ci sono alcune buone informazioni Come modificare e ottimizzare SSD per Ubuntu, Linux Mint da link a cui potresti essere interessato

Utilizza precarico

Per installare il precarico su Ubuntu, Linux Mint o sulle distribuzioni basate su Debian

# apt-get update && apt-get install preload

Disattiva lo scambio

Per modificare le impostazioni di swappiness:

$ su -
# nano /etc/sysctl.conf

E aggiungi questa linea nel file sysctl.conf.

vm.swappiness = 10
    
risposta data Sue Russell 09.11.2013 - 19:58
2

UPS richiesto. Nel file /etc/sysctl.conf

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Trova il daemon del file di configurazione, in genere /etc/syslog.conf или /etc/rsyslog.d/ e tutti i percorsi della forma /var/log/ cambiano scrivendo un segno meno ("-") davanti a te. Prima mail.err

/var/log/mail.err

Dopo
mail.err -/var/log/mail.err

usa FS btrfs e utilizza l'opzione -o ssd

Altro link

    
risposta data Василий Алексеенко 12.05.2012 - 13:08
1

Come modificare e ottimizzare SSD per Ubuntu, Linux Mint

Abilita TRIM

TRIM (il comando Trim consente a un sistema operativo di sapere quali blocchi SSD non vengono utilizzati e può essere cancellato)

Esegui il backup di fstab prima nel caso in cui qualcosa non andasse.

# cp /etc/fstab ~/fstab.bk

Modifica il file fstab

# nano /etc/fstab

Aggiungi scarto alle tue unità o partizioni SSD, dopo ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatime e nodiratime sono opzioni di mount in linux per il file system linux. noatime disabilita gli aggiornamenti atime sul file system e nodiratime disabilita gli aggiornamenti atime sul sistema di directory. Aggiungendo noatime e nodiratime si ridurrà di molto il carico di ssd significa guadagni in termini di prestazioni.

Modifica il file fstab

# nano /etc/fstab

Aggiungi noatime, nodiratime alle unità SSD o alle partizioni, dopo ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
    
risposta data user223973 24.12.2013 - 23:44
0

Suggerisco di inserire solo le cose che vengono lette all'avvio sull'SSD eventuali applicazioni che richiedono molto tempo per caricare.Data e log e altre cose non critiche che vorrei localizzare su un normale HDD. Inoltre potresti impostare il tuo ubuntu caricare solo un grosso initramfs da SSD al momento dell'avvio e non scrivere di nuovo le modifiche a ssd.Questo ha il vantaggio, che le modifiche a questa partizione non sono persistenti che è come una protezione per il tuo sistema di avvio. In questo caso avrai bisogno di molta più RAM certo.

Vorrei ad es. posiziona le partizioni /, / etc, / usr, / boot, / lib 32/64 su SSD mentre sth come

/ opt, / bin, / sbin, / root, / home e persino swap (aumenta RAM !!!) su HDD

Wikipedia dice:

  

Il kernel Linux supporta la funzione TRIM a partire dalla versione 2.6.33. Il file system ext4 è supportato quando montato utilizzando il parametro "scarto". Le utility del disco più recenti (e quindi il software di installazione che ne fa uso) applicano anche l'allineamento della partizione corretto.

Per i backup ci sono molti modi, il più semplice dei quali è (r) sync più cron job.

    
risposta data Michael K 09.12.2011 - 17:26

Leggi altre domande sui tag