buzzoole code

Come Abilitare la Funzione Trim Dischi SSD su Ubuntu Linux

Dopo aver comprato un SSD Samsung 840, la prima cosa che ho fatto è installare da zero un nuovo sistema Ubuntu 13.04.
Non contento di questo sono passato ad ottimizzare il tutto aggiungendo il comando TRIM ed altre piccole operazioni per diminuire le scritture sul disco.

ssd 840 samsung

Il comando TRIM permette ad un sistema operativo di indicare quali blocchi non sono più in uso in un’unità a stato solido (come ad esempio i blocchi liberati dopo l’eliminazione di uno o più file).
L’ operazione di cancellazione eseguita da un Sistema Operativo, comporta che i blocchi dati vengano contrassegnati come non in uso; il TRIM permette al sistema operativo di passare questa informazione al controller dell’ SSD, il quale altrimenti non sarebbe in grado di sapere quali blocchi eliminare.

Lo scopo fondamentale di questa istruzione è quella di mantenere costante la velocità dell’ SSD per tutto il suo ciclo di vita, evitando il rallentamento che i primi modelli di SSD messi in produzione avevano una volta che tutte le celle erano state scritte, una alla volta.

Anche se gli strumenti erano già disponibili per resettare alcuni dispositivi ad uno stato aggiornato, essi eliminavano tutti i dati sul dispositivo i quali non consentivano il loro uso come un’ottimizzazione.
La causa principale del problema è che gli SSD non conoscono quali blocchi sono realmente in uso e quali sono liberi.
Mentre il file system su un SSD continuerà a mantenere una lista dei blocchi in uso, gli SSD non capiscono i file system e quindi non possono accedere a quella lista.

Ciò causa dei problemi in 2 punti:

  • Gli SSD possono scrivere blocchi di 4 KiB alla volta, ma, dato le limitazione dell’hardware, essi devono eliminare blocchi più grandi (es. 128 KiB – 512 KiB).
    Dal momento che il dispositivo non conosce quali blocchi sono ancora in uso, se sono stati scritti in precedenza, ogni scrittura richiederà un grande numero di ciclo di lettura/eliminazione/modifica/scrittura, assumendo che non ci siano altri blocchi disponibili sull’SSD (dopo tutto i blocchi sono almeno parzialmente pieni), il termine per questo fenomeno è Write Amplification.
  • Wear levelling: consente a un dispositivo di riorganizzare i suoi dati così che le scritture non vengano confinate a uno degli angoli del chip flash.
    Le celle flash tollerano solo un limitato numero di scritture prima che si rompano, così alcune SSD spostano i dati intorno all’SSD in modo tale che le celle vengano utilizzate in modo equo.
    Dato che il dispositivo non conosce quali blocchi sono realmente in uso, ogni blocco di dati scritti sul dispositivo richiederanno un scrittura aggiuntiva a causa del blocco spostato.

Dopo questa breve introduzione sul funzionamento del comando TRIM e prima di fare qualsiasi intervento sul vostro disco, bisogna verificare se il vostro disco supporta il TRIM.
Per assicurarsi che il TRIM sia supportato, aprite un terminale e digitate il seguente comando:

se viene supportato dovreste ottenere una risposta simile a questa:

A questo punto potete provare ad eseguire il comando TRIM su una partizione con il seguente comando:

ed avrete un risultato simile a questo:

Adesso che avete verificato che potete abilitare il TRIM sul vostro SSD andiamo a modificare il file fstab, aggiungendo delle opzioni a tutte le partizione EXT4 che avete.
Le opzioni che andremo ad aggiungere sono:

  • noatime: non aggiorna l’inode con i tempi di accesso al file system, grazie a noatime come opzione di mount, si ottiene un sistema più veloce, poiché i tempi di accesso non sono registrati
  • nodiratime: non aggiorna l’inode delle directory sui tempi di accesso al file system
  • discard: abilità il TRIM.

Procediamo in questo modo, prima di tutto diventiamo utenti root con il comando:

e facciamo una copia di backup del file fstab per sicurezza:

apriamo il file fstab:

ed andiamo ad aggiungere le 3 opzioni come nell’esempio seguente:

Fate molta attenzione ad aggiungerle separandole dalle altre opzioni con la virgola e senza spazi.
Per chi vuole si può anche disattivare lo swap mettendo un # davanti alla riga UUID relativa allo swap, ma io ve lo sconsiglio.
Salvate e chiudete il file, al prossimo riavvio del sistema il comando TRIM sarà attivo sul vostro SSD.

Vi consiglio inoltre di applicare anche delle altre ottimizzazioni al vostro sistema in modo da utilizzare il meno possibile le scritture sul disco, per fare questo apriamo il file:

ed aggiungiamo alla fine del file queste due righe di codice:

Il primo comando vm.swappiness che di default è 60 indica la cache da mettere in swap oppure nella RAM, in questo modo portandolo ad 1 abbassiamo la probabilità di utilizzare lo Swap, invece il comando vm.vfs_cache_pressure indica ogni quanto tempo il kernel dovrà liberare la RAM.

Gli accorgimenti adottati miglioreranno il livello delle prestazioni e le manteranno più costanti nel passare dei mesi.

Questo Blog è Indipendente e Supportato Solamente dai suoi Lettori.
Se vuoi sostenerlo, Condivi il Post sui Social Network:
Aggiungi il nostro sito alla Whitelist di Adblock Plus
e magari Fai Anche un Acquisto su Amazon partendo da Qui
(a te non costa nulla!).
  • Luca

    ciao, ho seguito la tua guida passo passo ma quando riavvio il pc mi appare questo avviso:
    Si è verificato un errore nel mount di 0.
    premere S per saltare ……
    Cosa significa? ho forse sbagliato qualcosa e fatto danni?

  • niente di grave, hai installato un sistema dual boot linux, windows? se si ha windows 8 sull’altra partizione?
    inoltre mi posti il file fstab per vedere se è tutto corretto? aprilo utilizzando: sudo gedit /etc/fstab

  • Danilo_BB

    Se ho un ssd samsung evo su un nas che non gestisce il trim, posso dal pc eseguire il trim verso il ssd ?
    Si trova una iso bootable con questa funzione ?

  • Dunque non avendo mai provato non so se è possibile, gli unici NAS che conosco che gestiscono correttamente e in cui funziona il TRIM sono i Synology.
    Comunque puoi provare dal tuo pc ad eseguire i primi due comandi dell’articolo sopra (sostituendo /sda con la partizione del nas e il secondo sudo fstrim -v /partizioneNAS). Ciao

  • Danilo_BB

    Ho un nas Synology che però purtroppo non dispone della funzione trim ….
    Uso Windows 7; c’è modo di mandare quei comandi da una iso linux bootabile ?

  • Teoricamente si, basta anche una ubuntu 14.04 caricata su penna usb, il problema è che il comando va eseguito con regolarità e quindi dovresti ogni volta lanciare il comando, per curiosità quale modello è il tuo NAS Synology?

  • Danilo_BB

    Uso Synology DS414; sembra che il trim venga gestito solo dai modelli di classe superiore anche se poi questi utilizzano lo stesso sistema operativo del mio.
    Dove trovo la iso di Ubuntu per CD o DVD e soprattutto come faccio per inviare i comandi al Nas ?
    Grazie

  • è sicuramente una questione di controller del nas non del sistema operativo installato, Ubuntu lo puoi scaricare da ubuntu.com, e una volta lanciato provi ad eseguire i primi due comandi della guida per vedere se funziona.
    Ma ho qualche dubbio sulla riuscita, essendo un nas con un suo sistema operativo penso che non ti permetta di fare niente. ciao

  • Danilo_BB

    Scusa il ancora il disturbo … Ma se non trimmo il ssd che succede ? Si rovina o solo rallenta ?

  • tutte e due con il passare del tempo, le celle hanno una possibilità limitata di cancellazione e scrittura e a lunga andare la cella diventa più lenta e alla fine non riesce più ad essere scritta.
    con il comando trim si rallenta questo processo (che è inevitabile) facendo in modo che tutte le celle vengono cancellate e scritte lo stesso numero di volte (invece di utilizzare sempre una determinata sezione del disco ssd).
    Inoltre se hai il Samsung 840 evo aggiorna il firmware dal sito ufficiale samsung che già di suo con il passare del tempo presenta un notevole decadimento delle prestazione a causa di un bug. ciao