Homepage » come » Ubuntu non esegue il TRIM SSD di default Perché no e come abilitarlo

    Ubuntu non esegue il TRIM SSD di default Perché no e come abilitarlo

    Ubuntu vuole abilitare TRIM per gli SSD di default in Ubuntu 14.04. In altre parole, Ubuntu non sta già utilizzando TRIM, quindi il tuo SSD sta rallentando nel tempo. Ma perché Ubuntu non sta già usando TRIM?

    Questa notizia sarà probabilmente una sorpresa per molte persone, che presumevano che Ubuntu e altre distribuzioni Linux stessero già utilizzando TRIM. TRIM impedisce agli SSD di rallentare nel tempo ed è una parte necessaria della manutenzione SSD.

    Perché il TRIM è importante

    Abbiamo spiegato perché TRIM è importante prima. Quando elimini un file su un vecchio disco magnetico, il computer contrassegna semplicemente quel file come cancellato. I dati del file rimangono sul disco rigido: ecco perché i file cancellati possono essere recuperati. Il computer finirà per sovrascrivere i file cancellati quando sovrascrive i loro settori con nuovi dati.

    Le unità a stato solido (SSD) funzionano diversamente. Ogni volta che si scrive un file su un SSD, il computer deve prima cancellare tutti i dati nei settori in cui sta scrivendo i dati. Non può semplicemente "sovrascrivere" i settori in un'unica operazione: prima deve cancellarli, quindi scrivere nei settori vuoti.

    Ciò significa che un SSD rallenterà nel tempo. La scrittura nei settori dell'SSD sarà rapida la prima volta. Dopo aver eliminato alcuni file e provato a scrivere di nuovo, ci vorrà più tempo. Questa è una parte importante del motivo per cui il Nexus 7 originale di Google ha subito un rallentamento nel tempo. Google ha risolto questo problema implementando TRIM in Android 4.3. (Android usa anche il kernel di Linux.)

    Con TRIM abilitato, il sistema operativo comunica all'SSD ogni volta che cancella un file. L'unità può quindi cancellare i settori che contengono il contenuto del file, quindi la scrittura nei settori sarà rapida in futuro.

    In altre parole, se non si utilizza TRIM, il tuo SSD rallenterà nel tempo. Ecco perché i moderni sistemi operativi, incluso Windows 7+, Mac OS X 10.6.8+ e Android 4.3+ utilizzano TRIM. TRIM è stato implementato in Linux nel dicembre 2008, ma Ubuntu non lo utilizza per impostazione predefinita.

    Perché non Ubuntu TRIM di default?

    La vera ragione per cui Ubuntu non esegue il TRIM SSD di default è perché l'implementazione del TRIM del kernel Linux è lenta e si traduce in scarse prestazioni nell'uso normale.

    Su Windows 7 e 8, Windows invia un comando TRIM ogni volta che cancella un file, dicendo al drive di eliminare immediatamente i bit del file. Linux supporta questo quando i file system vengono montati con l'opzione "scarta". Tuttavia, Ubuntu - e altre distribuzioni - non lo fanno per impostazione predefinita per motivi di prestazioni.

    La wiki di OpenSUSE contiene alcune informazioni dettagliate di uno sviluppatore che ha più familiarità con il kernel di Linux di noi. È un po 'datato, ma è probabile che sia ancora vero quando si tratta di prestazioni:

    "L'implementazione del kernel del trim in tempo reale in 11.2, 11.3 e 11.4 non è ottimizzata. Le specifiche chiama trim che supporta un elenco vettorizzato di intervalli di trim, ma dal kernel 3.0 trim viene invocato dal kernel solo con un singolo intervallo di scarto / assetto e con gli attuali SSD a metà del 2011 ciò ha dimostrato di causare un peggioramento delle prestazioni anziché un aumento delle prestazioni. Esistono pochi motivi per utilizzare il supporto degli scarti in tempo reale dei kernel con i kernel pre-3.1. Non è noto quando la funzionalità di eliminazione dei kernel sarà ottimizzata per funzionare in modo vantaggioso con gli SSD della generazione attuale. "[Source]

    In altre parole, il kernel di Linux gestisce questi comandi TRIM in tempo reale in modo lento e non ottimizzato. Abilitando TRIM in modo simile a come fa Windows, ovvero utilizzando l'opzione "scarta", il sistema diventa effettivamente più lento di quando TRIM non viene utilizzato affatto. Ubuntu e altre distribuzioni Linux non abilitano "scarto" di default per i tuoi file system, e non dovresti neanche.

    C'è un altro modo

    Poiché l'operazione TRIM "scarto" in tempo reale del kernel Linux non ha prestazioni ottimali, la maggior parte delle distribuzioni Linux, inclusa Ubuntu, non utilizzano automaticamente TRIM. Anche Android non ha utilizzato TRIM fino ad Android 4.3.

    Ma c'è un altro modo di usare TRIM. Invece di emettere semplicemente il comando TRIM ogni volta che un file viene eliminato, è possibile utilizzare la funzione FITRIM. Questo succede tramite il comando fstrim. In sostanza, il comando fstrim analizza il file system e informa l'unità quali blocchi non sono più necessari, quindi l'unità può eliminarli. Questo trasforma TRIM da un'operazione in tempo reale in un'attività pianificata. In altre parole, fstrim può eseguire TRIM come un cron job. Non c'è ragione per non farlo. Non rallenterà nulla; è solo un altro compito di pulizia della casa che il sistema deve eseguire su un programma.

    In realtà, questo è l'approccio adottato da Google con Android 4.3. Android esegue semplicemente occasionalmente un'operazione fstrim per TRIM il file system, risolvendo il problema che ha rallentato tutti i Nexus 7 originali.

    Ubuntu sta anche cercando di abilitare TRIM automaticamente facendo in modo che il sistema esegua regolarmente fstrim. Si spera che facciano parte di Ubuntu 14.04, quindi gli utenti di Ubuntu non saranno costretti a gestire il degrado delle prestazioni di SSD o a eseguire fstrim da soli.

    Come abilitare TRIM

    Non è consigliabile installare i file system con l'operazione "discard", in quanto ciò probabilmente si tradurrà in prestazioni più lente nell'uso normale. Tuttavia, è possibile utilizzare TRIM manualmente eseguendo occasionalmente il comando fstrim o creando il proprio cronjob che esegue fstrim su una pianificazione.

    Per TRIM il tuo SSD su Ubuntu, basta aprire un terminale ed eseguire il seguente comando:

    sudo fstrim -v /

    È possibile eseguire occasionalmente il comando precedente per evitare il degrado delle prestazioni degli SSD. La frequenza con cui è necessario eseguirlo dipende dalla frequenza con cui i file vengono eliminati dall'unità SSD. Verrà visualizzato un errore se si tenta di eseguire il comando con un'unità che non supporta TRIM.

    Se vuoi eseguire TRIM regolarmente, puoi semplicemente creare un cronjob che esegua il comando fstrim per te. Ecco come fare un cron job barebone che lo farà automaticamente.

    Innanzitutto, esegui il seguente comando per aprire l'editor di testo nano con i permessi di root:

    sudo nano /etc/cron.daily/fstrim

    Digitare il seguente codice nel file:

    #! / Bin / sh

    fstrim /

    Salva il file premendo Ctrl + O e premi Invio per confermare. Premi Ctrl + X per chiudere nano dopo aver salvato il file.

    Infine, esegui il seguente comando per rendere eseguibile lo script:

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

    Ubuntu eseguirà ora fstrim su una pianificazione, proprio come fa altre attività di manutenzione del sistema.


    Nota che TRIM è supportato solo su file system moderni, quindi avrai bisogno di qualcosa come ext4 e non ext3 o ext2. Se non sai quale file system stai usando, non preoccuparti: ext4 è selezionato per impostazione predefinita.

    Gran parte di questo consiglio si applica anche ad altre distribuzioni Linux. Mentre Linux ha implementato il supporto TRIM nel kernel molto tempo fa, il suo supporto TRIM sembra non essere mai stato abilitato di default per gli utenti tipici nelle distribuzioni Linux.

    Immagine di credito: Mace Ojala su Flickr (ritagliata)