Quali passi dovrebbero essere presi prima / durante / dopo l'installazione di Ubuntu su un'unità a stato solido per ottimizzare le prestazioni e garantire la massima durata dell'unità?
Quali passi dovrebbero essere presi prima / durante / dopo l'installazione di Ubuntu su un'unità a stato solido per ottimizzare le prestazioni e garantire la massima durata dell'unità?
Risposte:
Ho usato 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 viene scritta anche l'unità, poiché le letture non dovrebbero aggiungere usura all'unità.
1) Gestisci il file di scambio
Se non si iberna il computer e si dispone di memoria RAM estesa per eseguire tutte le applicazioni, in teoria non è necessaria una partizione di swap.
Se si dispone di un mix di SSD e dischi rigidi, posizionare la partizione di swap solo sui dischi rigidi.
2) Nessuna scrittura per i timestamp di lettura (adatto per SSD e dischi rigidi)
Il montaggio delle partizioni con le opzioni noatime e nodiratime interromperà le scritture di data e ora durante la lettura di file e cartelle. Queste scritture di data e ora non sono generalmente richieste a meno che non si utilizzi un client del server 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. Ciò riduce la durata dell'SSD.
Modifica il tuo file di configurazione / etc / fstab (fai attenzione: esegui un backup per assicurarti che interrompere la configurazione di fstab può impedire al tuo sistema di funzionare):
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 righe che definiscono la tua radice (/) e altre partizioni se le hai (/ home) - Nota: se hai una partizione / home, inizia con quel solo cambiando 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) Ridurre al minimo le scritture dal sistema operativo e dalle applicazioni
Supponendo che non si stia eseguendo un server di prodotto mission-critical, la maggior parte delle persone non esamina i registri se qualcosa dovesse andare storto (soprattutto perché gli errori gravi sono rari per la maggior parte degli utenti di Ubuntu). Pertanto è possibile configurare Ubuntu in modo che tutti i registri vengano scritti nella memoria RAM anziché nell'SSD.
Nota: apportare le seguenti modifiche solo dopo aver installato tutto il software che si intende utilizzare (in particolare cose come il web server Apache), altrimenti potrebbero verificarsi problemi con le directory mancanti in / var / log
Per informazioni di base su questo approccio, vedere prolungare la durata dell'unità flash su ubuntu-eee.com
Apri / etc / fstab con un editor (supponendo di aver 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
Guarda anche:
Generalmente non mi preoccuperei: le preoccupazioni per la vita dell'SSD sono esagerate. Puoi leggere questo articolo dettagliato sul perché non dovresti davvero preoccuparti . In breve, i circuiti all'interno dei moderni SSD gestiscono il livellamento dell'usura per te e sanno come farlo molto meglio di te.
Nell'articolo è riportato un calcolo della durata di un SSD che sta ricevendo scritture a una velocità continua di 80 M / s. La vita è di 51 anni . Questo è basato sulla tecnologia del 2007: la vita degli SSD sarà più lunga ora. E quasi certamente non scrivi sul tuo SSD a 80 M / s 24 ore al giorno.
Tuttavia, il degrado delle prestazioni nel tempo può essere un problema e TRIM è la soluzione. Vi sono due opzioni
Devi abilitare TRIM automatico da solo . (Fondamentalmente aggiungi l' discard
opzione alle tue opzioni di mount, a condizione che tu stia usando ext4.) Ho trovato un post sul blog che riporta che l'opzione di scarto rallenta il tuo sistema durante l'eliminazione dei file .
Occasionalmente puoi farlo manualmente (o in un lavoro cron) usando fstrim . Se hai solo una partizione, tutto ciò che devi fare è:
sudo fstrim /
Nota che fstrim è disponibile solo nella versione 11.10 e successive. Per i sistemi più vecchi è necessario lo wiper.sh
script. Ho trovato lo script /usr/share/doc/hdparm/contrib/wiper.sh.gz
sul mio sistema.
Se ti stai chiedendo, il problema che TRIM risolve, come descritto da Wikipedia , è:
Gli SSD memorizzano i dati in 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, i contenuti devono prima essere cancellati prima che un'operazione di scrittura possa essere eseguita in modo affidabile. Negli SSD, un'operazione di scrittura può essere eseguita a livello di pagina, ma a causa delle limitazioni hardware, i comandi di cancellazione influenzano sempre interi blocchi. Di conseguenza, la scrittura di dati su supporti SSD è molto rapida fintanto che è possibile utilizzare pagine vuote, ma rallenta notevolmente una volta che le pagine precedentemente scritte devono essere sovrascritte. Poiché è necessaria una cancellazione delle celle nella pagina prima che possa essere riscritta, ma è possibile cancellare solo interi blocchi, una sovrascrittura avvia un ciclo di lettura-cancellazione-modifica-scrittura: i contenuti dell'intero blocco devono essere memorizzati nella cache prima che venga effettivamente cancellato sul supporto flash, quindi 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 in scrittura.
Ci sono diversi punti:
Allineamento:
Ciò che viene spesso sottolineato è il giusto allineamento della partizione. Questo dovrebbe essere uguale alla dimensione del blocco dell'SSD. Gioca in sicurezza e allinea le tue partizioni ai confini del MiB. Nota che non puoi farlo con lo strumento di partizione del programma di installazione di Ubuntu (che utilizza MB non MiB), ma puoi avviare il CD live, utilizzare Gparted (che utilizza MiB), quindi fare clic su Installa per utilizzare le partizioni impostate.
Lo scheduler giusto:
Un punto importante è lo scheduler che dovrebbe essere noop
. Puoi impostare questo programmatore tramite kernelparameter elevator=noop
o tramite una voce echo noop > /sys/block/sda/queue/scheduler
in rc.local.
mountflags:
Consiglierei noatime
ediscard
tmpfs
Mettere tmp su un ramdisk può aumentare la durata della ssd. Per usarlo inserisci la seguente riga in fstab:none /tmp tmpfs defaults 0 0
In genere, se vuoi approfondire questo argomento, consiglierei questo eccellente articolo wiki.
Corso di sintonizzazione rapida per il tuo SSD su Ubuntu:
filesystem
Arch wiki menziona alcune opzioni preferibili per il file system SSD: una è instabile, altre sono ext *. Presumo che ext4 sia una delle migliori scelte.
Nota: in caso di ext4 potresti voler usare l' discard
opzione 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
Poche cose importanti qui sono:
swap
partizione Oggi è necessario solo per l'ibernazione, poiché le macchine moderne hanno una quantità piuttosto grande di RAM.noatime
e discard
opzioni. Le informazioni sono qui .scheduler
Considera di passare dallo scheduler predefinito, che nella maggior parte delle distro Linux è cfq (accodamento completamente corretto), allo scheduler noop o deadline per un SSD. L'uso dello scheduler noop, ad esempio, elabora semplicemente le richieste nell'ordine in cui sono state ricevute, senza tenere in considerazione la posizione fisica dei dati sul disco. Si ritiene che questa opzione sia vantaggiosa per gli SSD poiché i tempi di ricerca sono identici per tutti i settori sull'SSD.
Aggiungi seguente a /etc/rc.local :
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
Informazioni
/tmp
in RAM, è molto facile arrivare a una situazione di memoria/tmp
insufficiente , poiché molti programmi utilizzano come spazio di archiviazione (ad esempio Brasero per la memorizzazione di immagini DVD).
tmpfs
per impostazione predefinita è il 10% di RAM. La dimensione può essere regolata usando l' size
opzione però.
Non aggiungerei questa linea alla tua cartella fstab, var / tmp è destinata a sopravvivere al riavvio e ciò potrebbe causare problemi.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
Quando configuro un nuovo sistema lascio tutta la cartella tmp commentata in questo modo se succede qualcosa, posso controllare i registri e le cose. Quindi, una volta installato il sistema principale, li annullerò come commento, 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 riscontro problemi con il mio sistema, li commento per poter controllare tutto anche dopo un riavvio o un riavvio forzato dopo un blocco.
Inoltre non hai bisogno di nodiratime, l'opzione noatime si occupa di entrambi da sola.
Per quanto riguarda TRIM, se il tuo hw / sw lo supporta, è un must, non uso scartare in fstab. Creo un cron giornaliero, perché il mio PC è sempre acceso, facendo questo:
gksu gedit /etc/cron.daily/trim
Quindi aggiungi questo al file e salva (Se non hai una partizione separata / home su ssd, o hai altre parti che sono 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 rendere eseguibile il file:
sudo chmod +x /etc/cron.daily/trim
Modifico anche 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, al profano sembra fuori di testa, non lo è.
Ho anche letto che lasciare il 10% del disco ssd non formattato può aiutare a prolungare la vita, che resta da vedere. Non ho letto molto in questo, quindi non posso garantire se ha senso farlo.
Questa è la migliore guida a tutto tondo, non ha sfogliato Google per un giorno e poi ha trovato una guida, dovresti dare un'occhiata QUI
TRIM consente a un sistema operativo di informare un SSD quali blocchi di dati non sono più considerati in uso e possono essere cancellati internamente. Il taglio consente all'SSD di gestire l'overhead della garbage collection, che altrimenti rallenterebbe in modo significativo future operazioni di scrittura sui blocchi interessati, in anticipo. 1
In Ubuntu 14.04 è stata aggiunta una nuova funzionalità al pacchetto util-linux che taglia automaticamente gli SSD automaticamente, ma solo gli SSD Intel e Samsung hanno TRIM abilitato di default, perché alcuni SSD economici possono persino murarsi quando si esegue TRIM. 2 I contenuti di /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 Come è abilitato Trim?
È chiaro che /var/tmp
non dovrebbe essere in tmpfs poiché per definizione il suo contenuto deve essere preservato oltre i riavvii:
Ok "breve storia":
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 le impostazioni predefinite. Ciò ridurrà anche l'usura e abiliterà la funzione TRIM. Salva e riavvia.
Ci sono alcune buone informazioni su come modificare e ottimizzare SSD per Ubuntu, Linux Mint da http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html potresti essere interessato a
Usa il precarico
Per installare il precarico su Ubuntu, Linux Mint o 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 riga nel file sysctl.conf.
vm.swappiness = 10
È richiesto UPS. Nel /etc/sysctl.conf
file
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
Trova il demone del file di configurazione, di solito /etc/syslog.conf
или /etc/rsyslog.d/
e tutti i percorsi del modulo /var/log/
cambiano scrivendo un segno meno ("-") davanti ai modi. Prima di mail.err
/var/log/mail.err
Dopo
mail.err -/var/log/mail.err
usa FS btrfs
e usa l' -o ssd
opzione
Come ottimizzare e ottimizzare SSD per Ubuntu, Linux Mint
Abilita TRIM
TRIM (il comando Trim indica a un sistema operativo quali blocchi SSD non vengono utilizzati e possono essere cancellati)
Eseguire prima il backup di fstab nel caso succeda qualcosa di sbagliato.
# cp /etc/fstab ~/fstab.bk
Modifica il file fstab
# nano /etc/fstab
Aggiungi scarta alle tue unità o partizioni sdd, 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à notevolmente il carico ssd significa un aumento delle prestazioni.
Modifica il file fstab
# nano /etc/fstab
Aggiungi noatime, nodiratime alle tue unità o partizioni sdd, dopo ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Suggerisco di posizionare solo quelle cose che vengono lette al momento dell'avvio sull'unità SSD, forse applicazioni che richiedono molto tempo per il caricamento. Dati e registri e altre cose non critiche che vorrei localizzare su un normale HDD. Inoltre, è possibile configurare Ubuntu in modo da caricare solo un grande initramfs da SSD al momento dell'avvio e non riscrivere le modifiche a ssd. Questo ha il vantaggio che le modifiche a questa partizione non sono persistenti, il che è come una protezione per il tuo sistema di avvio. Pertanto, ovviamente, avrai bisogno di molta più RAM.
Vorrei ad esempio posizionare le partizioni /, / etc, / usr, / boot, / lib 32/64 su SSD mentre sth piace
/ opt, / bin, / sbin, / root, / home e persino swap (aumenta la 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 "discard". Le utilità disco più recenti (e quindi i software di installazione che le utilizzano) applicano anche il corretto allineamento delle partizioni.
Per i backup ci sono molti modi, il più semplice dei quali è (r) sync più cron job.
/root
, /home
e lo swap dovrebbero essere messe sull'SSD per la velocità perché è principalmente di sola lettura. Per un vantaggio in termini di velocità, indossare anche /var
l'SSD.
/
partizione per Kubuntu Oneiric richiede 4,5 GB sul mio SSD. 20 GB sono sufficienti per /
meno /home
. Gli sforzi per modificare il layout del filesystem, diffondendolo su più partizioni non ne valgono la pena.
tmpfs
righe vengono commentate, quindi perché l'aggiunta di tali righe potrebbe fare la differenza? Dobbiamo aggiungerlo senza commenti?