Configurer le TRIM pour SSD sur Linux
Je viens de passer d’un disque classique au SSD et la différence de vitesse est fulgurante.
SSD :
- 550Mo/s constant en lecture
- 530Mo/s en écriture
- 0.1ms de temps d’accès
Disque dur 7200rpm:
- 70 à 35 Mo/s en lecture suivant l’emplacement des données (meilleur débit si les données sont en périphérie du plateau)
- 15-20ms de temps d’accès
La différence de technologie impose cependant de mettre en place l’utilisation de TRIM pour ne pas perdre en performance d’écriture lorsque votre disque se remplit.
Je trouve dommage que l’OS ne se débrouille pas tout seul pour mettre ça en place. Mais bon, voyons comment faire cela manuellement :
1. Vérifier que votre SSD supporte la commande TRIM
Lancez la commande : # hdparm -I /dev/sda | grep « TRIM supported » en remplaçant sda par votre disque
Vous devriez voir quelque chose comme :
* Data Set Management TRIM supported (limit 8 blocks)
2. Si vous avez un disque chiffré, activer TRIM pour dm-crypt
Insérer l’option discard dans /etc/crypttab
# <target name> <source device> <key file> <options>
sda2_crypt /dev/sda2 none luks,discard
3. Si vous utilisez LVM, activer TRIM pour LVM
Insérer issue_discards dans le fichier /etc/lvm/lvm.conf
# [...]
devices {
# [...]
issue_discards = 1
# [...]
}
# [...]
4. Appliquer la configuration
Si vous êtes passés par l’étape 2 ou 3, il est nécessaire de lancer l’une des 2 commandes suivantes pour valider les changements :
Debian : # update-initramfs -u
RedHat : # dracut -f
Redémarrer l’ordinateur.
5. Tester le TRIM
Vous pouvez tester que le TRIM fonctionne en lançant la commande fstrim sur votre point de montage: # fstrim /
6. Activer TRIM pour le système de fichier
Plutôt que de laisser le système envoyer une commande TRIM à chaque effacement de donnée, on va informer le disque des blocs libres uniquement une fois par jour. Cela permet au disque d’opérer sa réorganisation des blocs libres à un moment où le besoin de performance n’est pas critique et donc d’éviter sur certains SSD de perdre énormément de performance lors des opérations d’effacement de données.
Pour cela, on va rajouter une entrée dans le crontab de root. Editer le crontrab par la commande : # crontab -e
Ajouter la ligne suivante : @daily fstrim /
Si vous avez une partition différente pour / et /home, vous pouvez plutôt chaîner les commandes comme ceci: @daily fstrim /; fstrim /home