Sur un SSD, contrairement à un disque magnétique classique, si un bloc a déjà été utilisé avant d'être effacé logiquement (suppression de l'entrée dans le catalogue), il faut l'effacer physiquement avant de pouvoir y ré-écrire quelque chose d'autre.
Donc, le système va privilégier, dans un premier temps l'utilisation des blocs jamais utilisés, mais quand tous l'auront été une fois, les performances en écriture vont chuter drastiquement, car avant d'inscrire quoi que ce soit dans un bloc, il faudra l'effacer physiquement préalablement.
Le Trim (en version simplifiée, en fait, c'est un peu plus compliqué que ça, mais là ça doit te permettre d'en comprendre l'utilité)) est un dispositif qui permet au système de procéder à l'effacement physique en tâche de fond des blocs utilisés mais effacés "logiquement". Ça évite la perte de performances en écriture à la longue. Malheureusement, sur Mac, ça n'est utilisable que sur les SSD internes, et les SSD externes utilisés dans un boîtier Thunderbolt. En USB ou Firewire, il est impossible de l'activer.
Par ailleurs, sur Mac, il n'est activé automatiquement que pour les SSD Apple, pour les autres, il faut l'activer manuellement (mais il le restera au moins jusqu'à la prochaine mise à jour système). Depuis Yosemite (mise à jour 10.10.4), une commande d'activation simplifiée a été ajoutée via le terminal : "sudo trimforce enable", mais pour les versions antérieures (jusqu'à la 10.6.6 de Snow Leopard) chaque version nécessite un script terminal adapté. En voici quelques uns (avec indication des systèmes concernés) récupérés sur internet :
Bloc de code:
NOTE: This is tested on the versions mentioned in the title, and NOT earlier or later versions. YMMV.
Run the following commands in Terminal…
Backup the original driver:
sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage-backup
Modify the driver (choose only one of the following lines, based on the version):
# 10.9.4 & 10.9.5
sudo perl -pi -e 's|(^\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
# 10.8.3 to 10.9.3
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
# 10.7.5, 10.8.1, 10.8.2
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x4D)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
Run these commands in succession to clear the system caches to enable OS X to pick up the modified driver:
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
sudo touch /System/Library/Extensions/
Restart the Mac.