Du TRIM en USB sous Windows 10 (mais pas sous macOS)

Depuis quelques années, une commande a beaucoup d’importance avec les SSD : le TRIM. Elle permet de limiter l’usure et dans une certaine mesure d’améliorer les performances (j’en parlerais en détail dans la semaine). Et macOS ne supporte le TRIM qu’en interne (ou en Thunderbolt), mais pas en USB. Contrairement à Windows 10.

Pour faire court : le TRIM permet d’indiquer au contrôleur du SSD qu’une donnée à été effacée.

Un peu plus en détail : dans un système de fichiers, l’effacement d’un fichier n’implique pas de l’effacer réellement (ni de réécrire) : il suffit d’effacer l’entrée de départ. Dans le cas d’un disque dur, ce n’est pas un problème : la structure logique (du système de fichiers) et la structure physique (sur le disque) coïncident. Avec un SSD, justement, non. Une donnée placée sur le premier cluster du système de fichiers peut être n’importe où sur le SSD. De plus, pour gérer l’usure, le contrôleur doit connaître les cellules vides. Et c’est là que la commande TRIM intervient : elle permet d’envoyer l’information au contrôleur. A chaque effacement de fichiers, l’OS envoie la commande et le contrôleur peut donc considérer la cellule vide.

Sans le TRIM, si vous remplissez le SSD et que vous effacez (ou formatez) le SSD, le contrôleur va tout de même le considérer comme rempli. Ce qui implique directement une chose : une gestion de l’usure moins bonne. En pratique, le SSD s’usera sûrement un peu plus vite (ce qui n’est pas réellement un souci) et les performances en écriture risquent de diminuer car le contrôleur déplacera des données qui ne devraient pas être déplacées. De plus, dans certains cas, ça joue aussi sur les performances du cache en écriture (je vais en reparler plus en détails dans la semaine).

Le support du TRIM

Le TRIM existe depuis Windows 7 et Snow Leopard. Pendant longtemps, Apple a limité la commande à ses propres SSD, mais El Capitan a introduit une commande qui permet de le forcer sur d’autres SSD. Sous macOS, la commande ne fonctionne qu’avec un SSD interne, ou plus exactement avec un SSD interfacé directement en SATA (donc en interne ou dans un boîtier Thunderbolt) ou en PCI-Express (même chose). Avec les adaptateurs USB, ça ne fonctionne tout simplement pas. Attention, certains boîtiers Thunderbolt intègrent du SATA en interne avec un adaptateur USB au lieu d’un contrôleur SATA classique (mais c’est assez rare).

Et sous Windows ? Et bien les dernières générations de boîtiers USB laissent passer le TRIM avec Windows 10 (je n’ai pas testé sous Windows 7, mais c’est peu probable). J’ai testé récemment avec deux boîtiers.

L’adaptateur USB-C vers SATA

Le premier vaut environ 15 €. Il est basé sur une puce ASM235CM et fonctionne en USB 3.1 Gen. 2 (à 10 Gb/s au maximum, donc). Il est USB-C, même si le boîtier est malheureusement livré avec un câble USB-C vers USB-A. Avec un SSD, on peut dépasser les 500 Mo/s et arriver aux limites du SATA 6 Gb/s. Et sous Windows 10, il supporte le TRIM. Pour vérifier le fonctionnement, j’utilise le programme TRIMcheck. Il faut le copier sur le SSD, le lancer une première fois, attendre quelques secondes et le lancer une seconde fois. A ma connaissance, il n’existe malheureusement pas d’équivalent sous macOS.

Test…


… réussi

Sous macOS, les informations système n’indiquent pas de prise en charge et l’utilitaire de disques non plus. Avec le support du TRIM, une ligne spécifique apparaît, absente du SSD en USB. Je ne suis pas certain à 100 % (on va dire plutôt 99 %) que ça ne fonctionne pas, mais les tests empiriques prouvent que le TRIM est bien absent.

TRIM actif : élagage des blocs inutilisés


Pas de TRIM : la ligne n’apparaît pas

Le second boîtier est un modèle USB-C vers PCI-Express NVMe, à base de JMS583 (JMicron). Il vaut environ 25 € et offre des performances assez élevées : on approche de 1 Go/s avec un SSD correct. Le constat est le même qu’avec le premier boîtier (je ne remets pas les captures, identiques) : ça fonctionne sous Windows 10 et pas sous macOS.

L’adaptateur, avec un SSD WD Black

J’espère qu’Apple décidera un jour de se pencher sur ce problème, mais en attendant soyez prévenus : la tenue dans le temps d’un SSD externe sous macOS est moins bonne que sous Windows et il n’existe pas réellement de solutions (sauf à passer en Thunderbolt).