## page was renamed from andreas-xavier/OttimizzareSSD
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
Questa guida contiene dei consigli pratici per Ubuntu e derivate, finalizzati a migliorare le prestazioni e la durata degli [[https://it.wikipedia.org/wiki/Unit%C3%A0_a_stato_solido|SSD (drive a stato solido)]]. Queste unità di memoria sono anche chiamate comunemente (in maniera impropria) dischi a stato solido. Per via delle elevate velocità di lettura e scrittura, si stanno sempre più diffondendo come alternativa ai tradizionali dischi rigidi.
Le indicazioni descritte di seguito sono principalmente volte a ridurre il numero di scritture sul drive che, se elevato, può essere il maggior fattore di rischio per le performance e per il ciclo di vita degli SSD.
= Consigli generali =
Di seguito sono elencate alcune pratiche utili:
* '''Scegliere attentamente l'SSD:''' in fase di acquisto porre attenzione alle specifiche tecniche. Si raccomanda di considerare non solo le caratteristiche più evidenti (capacità, form factor, modulo, tecnologia SATA o NVMe/PCIe, tipo connettore per lo slot, ecc.), ma anche sigle quali SLC, MLC, TLC, QLC o PLC (che fanno riferimento alla [[https://en.wikipedia.org/wiki/Multi-level_cell|capacità di memorizzazione in bit per ogni cella]]), scegliendo la tipologia adatta alle proprie esigenze. Infine, quando possibile, preferire SSD di produttori affidabili che rilasciano aggiornamenti firmware, offrono una manualistica adeguata per i loro prodotti, hanno validi canali di supporto ecc.
* '''BIOS/UEFI impostato su [[https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface|AHCI]]:''' nelle impostazioni SATA assicurarsi che sia impostata la modalità AHCI e non IDE. A seconda dei modelli l'opzione potrebbe essere denominata diversamente oppure essere assente (ad esempio perché abilitata di default nei BIOS più recenti). In caso di dubbi fare riferimento alle istruzioni della propria scheda madre.
* '''Firmware aggiornato:''' assicurarsi che l'SSD abbia l'ultima versione del firmware disponibile; anche in questo caso fare riferimento alle informazioni fornite dal produttore nei canali ufficiali.
* '''Filesystem adeguato''': selezionare ext4 o [[Hardware/DispositiviPartizioni/Btrfs|Btrfs]] come filesystem in fase di [[Installazione/InstallareUbuntu|installazione]].
* '''[[AmministrazioneSistema/Aggiornamenti|Aggiornare]] frequentemente il sistema:''' in questo modo potrebbero essere risolti eventuali bug che impediscono il corretto funzionamento di alcuni modelli di SSD con il kernel Linux (ad esempio quelli inseriti dai manutentori in [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/ata/libata-core.c#n3889|questa blacklist]]).
* '''Macchine virtuali e sistemi in dual boot:''' in presenza di altri sistemi installati in queste modalità, adottare anche con questi appositi accorgimenti per evitare eccessive scritture sul drive (es.: con Windows evitare di deframmentare il filesystem).
* '''Effettuare [[AmministrazioneSistema/BackupDelSistema|backup]] più frequenti:''' benché privi di parti meccaniche e poco sensibili a colpi e oscillazioni, nonostante negli ultimi anni siano diventati sempre più affidabili e sicuri, gli SSD __non__ sono immuni a guasti e danneggiamenti.<
>
Gli hard disk meccanici quando iniziano a deteriorarsi mostrano alcuni sintomi riconoscibili, che spesso si manifestano gradualmente: trasferimento di dati lento, impossibilità di aprire file, rumori provenienti dal disco ecc. Ciò permette all'utente di procedere in tempo utile al recupero o al salvataggio dei dati. Al contrario, negli SSD i sintomi potrebbero manifestarsi più repentinamente, non dando il tempo di correre ai ripari. La natura dei sintomi stessi potrebbe ostacolare il salvataggio dei dati: file apparentemente spariti, crash improvvisi, filesystem in sola lettura, impossibilità di eseguire il boot ecc.<
>
Per questi motivi si consiglia di essere previdenti e di effettuare più frequentemente i consueti backup per evitare perdite di dati.
Di seguito, invece, sono elencate alcune pratiche da evitare:
* '''Consultare guide datate:''' in anni recenti la tecnologia ha permesso di superare quelli che erano i limiti e i difetti dei primi SSD lanciati sul mercato. Pertanto alcuni accorgimenti validi in passato potrebbero essere superflui o addirittura dannosi.
* '''Esagerare con gli accorgimenti:''' negli ultimi anni gli SSD si sono sempre più diffusi e stanno gradualmente sostituendo gli hard disk come disco di sistema (ed anche di archiviazione). Di conseguenza i sistemi operativi hanno introdotto delle funzionalità apposite che rilevano la presenza di un SSD in fase di installazione, applicando particolari impostazioni per ottimizzarne le prestazioni. Perciò, nella maggior parte dei casi, __non__ c'è bisogno da parte dell'utente di eseguire nessuna operazione particolare, se non l'adozione di alcuni piccoli accorgimenti.
{{{#!wiki tip
Alcuni produttori (Samsung, Crucial e altri) offrono dei software appositi con cui gestire gli SSD, in versioni native per sistemi GNU/Linux, permettendo di eseguire le azioni più comuni (aggiornamento del firmware, gestione di Overprovision e TRIM, lettura dati SMART ecc.). Fare sempre riferimento ai siti e alla manualistica dei produttori.<
>
Qualora questi strumenti siano disponibili solo per Windows, è comunque possibile utilizzarli per specifiche operazioni indipendenti dal sistema operativo (ad esempio per aggiornare il firmware). Ciò è possibile in caso di sistemi in dual boot oppure semplicemente collegando l'SSD ad un computer con Windows.
}}}
= Abilitare il TRIM =
Consultare la [[Hardware/DispositiviPartizioni/Trim|guida dedicata]].
= Accorgimenti per la memoria di swap =
Per tutte le procedure e gli accorgimenti consultare questa [[Hardware/DispositiviPartizioni/SwapDomandeFrequenti#Ho_un_disco_SSD._Quali_accorgimenti_devo_adottare.3F|guida]].
= Spostare la cache di Firefox nella RAM (facoltativo) =
Consultare [[InternetRete/Navigazione/Firefox/Configurazione#Spostare_la_cache_nella_memoria_RAM|questa guida]].
{{{#!wiki note
L'impostazione va eventualmente applicata anche ad altri utenti presenti nel sistema.
}}}
= Opzioni in /etc/fstab (facoltativo) =
Per informazioni sulla modifica del file `/etc/fstab` e le relative opzioni di montaggio consultare la [[AmministrazioneSistema/Fstab|guida]] dedicata, se necessario.
* '''noatime''' (ext4 e btrfs): quando il sistema accede a file o directory (sia in lettura che in scrittura) viene aggiornato il valore di ''atime'' (''access time''), ossia relativo agli orari di accesso agli inode presenti sul filesystem. Impostare l'opzione di montaggio '''noatime''' nel file `/etc/fstab` impedisce la funzionalità descritta sopra, riducendo quindi le scritture sul drive.
## * '''relatime''' (ext4 e btrfs): simile al precedente, può essere usato come alternativa; aggiorna il valore di ''atime'' solo quando precedente all’ultima modifica (evitando anche problemi di compatibilità con alcuni programmi).
* '''discard=async''' (btrfs): consigliato per uso server o per chi abbia necessità di liberare blocchi in continuazione; rispetto all'opzione '''discard''' comporta maggiore efficienza nell'eliminazione dei blocchi e minore latenza in lettura.
* '''compress=zstd:1''' (btrfs): per informazioni consultare [[Hardware/DispositiviPartizioni/Btrfs/Introduzione#Compressione|questa guida]].
{{{#!wiki tip
In fase di installazione con filesystem btrfs il sistema è in grado di riconoscere automaticamente la presenza di un SSD. Viene quindi aggiunta in automatico l'opzione '''ssd''', che racchiude la maggior parte delle ottimizzazioni utili per questo tipo di dispositivi.
}}}
{{{#!wiki important
Attualmente __non__ è raccomandato l'utilizzo dell'opzione discard. Per maggiori informazioni consultare il [[#discard|paragrafo dedicato]].
}}}
= Accorgimenti superflui =
== Overprovisioning ==
L'[[https://it.wikipedia.org/wiki/Write_amplification#Over-provisioning|overprovisioning]], in sintesi, è una tecnica che consiste nel riservare una porzione di spazio non allocato alla fine del drive per migliorarne le prestazioni.<
>
Le nuove generazioni di SSD (approssimativamente dal 2014) hanno migliorato le tecnologie e i firmware, pertanto questo accorgimento risulta ormai datato e non più necessario (ad esempio in alcuni modelli lo spazio non allocato è già presente, seppur non accessibile direttamente all'utente).
Per i vecchi modelli è comunque possibile impostare questa funzionalità, se necessario. In tal caso consultare il manuale del prodotto e/o contattare l'assistenza del produttore per conoscere la percentuale consigliata di spazio da riservare all'overprovisioning.
Per informazioni sulle procedure di partizionamento e di ridimensionamento delle partizioni consultare [[Hardware/DispositiviPartizioni/PartizionamentoManuale|questa guida]].
== Allineamento delle partizioni ==
In passato era consigliabile che le partizioni degli SSD fossero correttamente allineate. Oggi tutti gli strumenti dedicati al partizionamento allineano automaticamente le partizioni con settori della dimensione ottimale di 4096 byte, non rendendo quindi necessaria alcuna altra operazione.
= Azioni potenzialmente dannose =
<>
== Opzione discard in /etc/fstab ==
Un metodo molto utilizzato in passato, oggi non raccomandato, era di abilitare il TRIM automatico aggiungendo l'opzione '''discard''' nel file `/etc/fstab`.
Anche se apparentemente efficace, questo metodo risulta non conveniente o addirittura svantaggioso perché:
* obbliga il sistema ad eseguire il TRIM continuamente e con il sistema avviato, dopo ogni singola eliminazione di file (nella maggior parte dei casi è sufficiente eseguirlo una volta a settimana o al giorno).
* per il precedente motivo, può causare un notevole impiego di risorse, con frequenti rallentamenti del sistema.
* nelle versioni recenti di Ubuntu il comando viene già eseguito gestito automaticamente da '''systemd'''.
== TRIM in /etc/rc.local ==
Una modalità utilizzata in passato era di eseguire il comando '''trim''' all'avvio del sistema, tramite apposita modifica al file `/etc/rc.local`.<
>
Attualmente questa pratica non risulta conveniente in quanto:
* provoca tempi lunghi di avvio del sistema.
* esegue poche volte il trim nei computer che rimangono spesso accesi.
* nelle versioni recenti di Ubuntu il comando viene già eseguito e gestito automaticamente da '''systemd'''.
== Ibernazione ==
L'[[https://en.wikipedia.org/wiki/Hibernation_(computing)|ibernazione]] (''suspend-to-disk'') è una funzionalità che richiede un numero elevato di operazioni di scrittura su disco.
È disabilitata di default nelle versioni recenti di Ubuntu e derivate, ma rimane comunque attivabile dall'utente. Se ne sconsiglia l'attivazione ai fini di questa guida.
= Ulteriori risorse =
* [[https://easylinuxtipsproject.blogspot.com/p/ssd.html | Documento originale]]
* [[https://wiki.debian.org/SSDOptimization|Wiki Debian]]
* [[https://wiki.archlinux.org/index.php/Solid_State_Drives | Wiki Arch]]
----
CategoryHardware CategoryAmministrazione