Avec un disque dur classique, la question ne se pose pas : tout le monde s’accorde à dire qu’il faut défragmenter régulièrement le disque dur, à tel point que Microsoft planifie maintenant de façon automatique les défragmentations de disques durs classiques (heureusement pas pour les SSD)

Avec un disque dur SSD en revanche, la plupart du temps on vous dira que non, il ne faut absolument pas le défragmenter.

Vraiment ?

1. Pourquoi défragmenter un disque dur classique

La défragmentation sur un disque dur classique a 2 objectifs principaux, qui sont inhérents aux disques durs classiques :

Les temps d’accès étant relativement longs, si le fichier est découpé en plusieurs morceaux on multiplie ces temps d’accès.
La défragmentation permet de recoller les morceaux pour que chaque fichier ne se trouve qu’en un seul morceau.
Par exemple sur un disque dur avec un temps d’accès de 20ms, qu’on peut trouver dans les ordinateurs portables, si le fichier est découpé en une 100aine de morceaux, il faudra 2 secondes de plus pour le lire que s’il n’était qu’en un seul morceau (En schématisant ; La réalité est un peu plus complexe que ça…)

La vitesse d’un disque dur varie d’un bout à l’autre.
Tant qu’a déplacer de gros volumes de données, l’outil de défragmentation va placer ces données là ou le disque les lira le plus rapidement.
En effet, les plateaux des disques dur tournent à vitesse constante (7.200 tour par minute par exemple) donc, forcément, l’extérieur du plateau « va plus vite » que l’intérieur, et les données qui y sont stockées sont donc lues plus rapidement. La différence de vitesse pouvant aller du simple au double, il est important de stocker les données souvent accédées en « début de disque » (c’est à dire sur l’extérieur)

2. Pourquoi NE PAS défragmenter un disque dur SSD

Un disque dur SSD gomme, en grande partie, les 2 intérêts principaux de la défragmentation, et ajoute une contrainte qui va également contre la défragmentation.

Les temps d’accès sont extrêmement réduits, de l’ordre de 0,1ms. Du coup l’intérêt de regrouper les fichiers en un seul morceau est très fortement réduit.
En reprenant le calcul de notre exemple d’un fichier découpé en 100 morceaux, les temps d’accès rajouteraient ici non pas 2 secondes mais 0,1 seconde ce qui devient négligeable. (En réalité, ces 0,1 seconde calculés ici sont faux, mais retenez que c’est négligeable)

La vitesse d’un disque SSD est constante d’un bout à l’autre.
Pas de plateau ici. Chaque cellule du SSD répond à la même vitesse.
Il n’y a donc aucun intérêt à déplacer les données d’un bout à l’autre d’un disque SSD…

– Surtout, chaque cellule d’un SSD ne supporte qu’un nombre limité d’écriture.
En défragmentant, on va déplacer une grande quantité de données et donc consommer des cycles d’écritures pour… pas grand chose.

Du coup, Microsoft n’activent pas la défragmentation automatique sur les disques SSD, et tous les experts vous conseilleront de ne jamais défragmenter votre disque SSD.

Certains ajouteront même, avec raison, que les clusters adjacents d’un disque SSD ne correspondent pas forcément à des cellules adjacentes du SSD… le microcontroleur de celui-ci ayant tendance à réorganiser le stockage des différents clusters dans des cellules non contigües pour optimiser le nombre d’écritures de chaque cellule et donc faire durer le SSD dans le temps.

Dès lors, on pourrait considérer comme stupide de vouloir qu’un fichier occupe des clusters adjacents si de toute façon les cellules, elles, ne le sont pas….

Sauf que…

3. Pourquoi défragmenter quand même de temps en temps un disque dur SSD

Le problème c’est que le système de fichiers utilisé par Windows, le NTFS, n’a pas du tout été prévu pour être utilisé sur des SSD (qui n’existaient pas à l’époque) !

Avec le NTFS, Windows va stocker pour chaque fichier une « table d’allocation » où seront répertoriés les différents « morceaux » du fichier.
Pour lire un fichier, il va donc lire cette table, puis lire les différents morceaux dans l’ordre.

Sauf que cette table, d’une part devient vite complexe à lire quand le nombre de fragments augmente, et d’autre part ne peut contenir qu’un nombre de fragments limité !

Plus exactement, le NTFS va allouer une table de taille limitée contenant d’autres tables de tailles elles mêmes limitées pour y stocker les positions des fragments.
Si le fichier est peu fragmenté, il n’y aura donc qu’une seule table à consulter. Si le fichier devient plus fragmenté, il faudra consulter plusieurs tables (c’est un petit peu plus long mais rarement perceptible). Et si le fichier devient vraiment très fragmenté, le nombre de tables peut carrément ne plus suffire !

Microsoft en parle par exemple ouvertement ici : http://support.microsoft.com/kb/967351/fr

Suivant le logiciel qui essaiera d’écrire dans le fichier, on pourra alors obtenir des erreurs plus ou moins parlantes…
VMWare par exemple va vous dire qu’une erreur d’accès au fichier est survenue et vous demander si le disque est toujours branché…
Microsoft vous énoncera un message d’erreur à peine plus explicite dans Windows ou SQL Server : Avant Windows Vista : « Ressources système insuffisantes existent pour terminer le service demandé » ; Depuis Windows Vista : « L’opération demandée a échoué en raison d’une limitation de système fichier. »

Bref, il est donc utile voir nécessaire de défragmenter occasionnellement son disque SSD non pas parceque le SSD supporterait mal la fragmentation, mais parceque le système de fichier NTFS, lui, est réellement limité en nombre de fragments par fichier !

Microsoft a d’ailleurs introduit un nouveau système de fichier avec Windows 2012 et Windows 8.1 : le ReFS.
Mais ce système de fichier étant tout nouveau, il va probablement falloir attendre encore quelques années avant qu’il soit adopté par le plus grand nombre et installé par défaut (à l’heure où j’écris ces lignes, Windows est d’ailleurs toujours incapable de démarrer sur un système de fichier ReFS… ce qui impose de conserver NTFS au moins pour le disque système)

ATTENTION :Je reprécise bien que cette défragmentation doit être occasionnelle, ou éventuellement tous les 6 mois si vous voulez vraiment la planifier… N’oubliez pas que la défragmentation réduit la durée de vie de votre SSD (de la même façon que si déplaciez tous les fichiers…). Il n’est pas question ici d’éviter toute fragmentation, mais simplement d’éviter d’avoir un nombre de fragment par fichier trop important.



(Vu le succès de cette page, je me suis décidé à mettre un peu de pub … en espérant que ça ne gênera pas trop le lecteur ;-) N’hésitez pas à l’indiquer en commentaire dans le cas contraire)





Articles en rapport :

  1. AComparatif DropBox, hubiC, ZumoDrive et SugarSync Tweet ATTENTION : Cet article est périmé. Les services testés...
  2. Accélérez les vidéos YouTube (gratuitement :) ) Tweet Si vous avez des lenteurs lorsque vous regardez des...
  3. Internet n’est pas toujours la meilleure solution… Tweet Le père Noël a été généreux cette année et...
  4. Guide du débutant – Ajouter de la mémoire RAM sur un PC (fixe ou portable) Tweet Pour améliorer les performances d’un PC qui commence à...
  5. Connecter son téléphone à sa chaîne hifi : Câble, FM, Bluetooth ou Wifi ? Tweet Que ce soit pour écouter de la musique occasionnellement...

10 commentaires au sujet de “Défragmenter un disque dur SSD : oui, c’est utile.”

  1. moreno serge dit :

    merci pour ce conseil car mon pc sony vaio a un ssd d’origine sous système windows 8.1 pro et il est fragmenter de 13,8% je peux donc le défragmenter une fois ! merci du conseil .

  2. Charles dit :

    Merci beaucoup j’étais dans le même cas que Moreno Serge, j’ai défragmenté puis j’ai eu peur d’avoir fait une bêtise.
    Je garde donc la fréquence 6 mois pour mon SSD.
    En revanche mon temps de démarrage est bien plus long désormais…(90 s au lieu de 26 selon Wise Boot up)

  3. 90 secondes me semble beaucoup pour un démarrage depuis un SSD… Il faudrait regarder ce qui est chargé au démarrage et pourquoi ça prend autant de temps.
    Commencez déjà par regarder dans l’observateur d’évènement si vous n’avez pas des erreurs ou des avertissements qui pourraient vous mettre sur une piste.
    Je ne connais pas Wise Boot Up, mais si c’est un optimiseur de démarrage et qu’il avait effectué une optimisation, il faut peut être la refaire après la défragmentation ? Vous pouvez aussi essayer de le désinstaller (c’est peut être lui qui est perturbé par la défragmentation et provoque ce temps de démarrage)

  4. Nicolas dit :

    DBonjour et merci pour votre article !

    Une question que je me pose depuis quelques temps : si je veux ghoster un bon vieux disque dur sur un ssd, est-ce qu’il est utile de défragmenter le disque source auparavant ?

  5. Bonjour,

    Clairement non, il n’y a absolument aucun intérêt à défragmenter un disque avant d’en faire une image ou de le copier sur un autre disque.

    J’ai justement pour projet un article sur le sujet, votre question m’incite à faire avancer ce projet ;-)

    Merci à vous.

  6. (je modère juste un peu : il peut y avoir intérêt à défragmenter si on fait une image octet par octet en vue d’être ensuite envoyée sur plusieurs PC. Dans ce cas, il vaut mieux défragmenter avant plutôt que défragmenter chaque PC ;-) )

  7. DTC dit :

    Bonjour,

    Merci pour les infos précieuses (et pas de souci pour la pub, j’ai Adblock Plus :) )

  8. MIGHTY dit :

    merci pour l’info!
    il faut savoir que sur mon dell xps13 (ssd 256G ) windows 10 la défragmentation était quand même planifiée toutes les semaines…
    merci windows?

  9. Leclerc Bruno dit :

    Bravo et merci pour tous ces détails.
    J’ai un HP Omen avec windows 10 installé d’usine.
    Et je m’aperçois également à l’instant que la défrag est activée !
    Il parle d’ailleurs d’optimisation plutôt que de défragmentation. (est-ce bien la même chose ?)
    Donc je m’empresse de la désactiver.

  10. Cet article date d’avant Windows 10, il faudrait que je le mette à jour.

    Effectivement Windows 10 ne défragmente pas les disques SSD mais les « optimise ».
    Je pense qu’en fait il se contente de lancer un TRIM manuel.

    Vous pouvez laisser cette « optimisation » active sans risque :-)

Répondre

Vous pouvez utiliser ces balises: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>