Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.04.2012      r+  22.10.2024      r-  22.10.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Avec le temps, les fichiers deviennent « fragmentés ». Cela est normal, mais les pointeurs permettant de relier tous les « morceaux » rendent les accès disque de plus en plus lents à cause des déplacements des têtes de lecture/écriture un peu partout au-dessus de la surface du disque. Il faut défragmenter les fichiers afin que les fichiers soient, chacun, d'un seul tenant, minimisant les déplacements des têtes. Il faut aussi déplacer les fichiers, pour que tout l'espace libre restant, sur le disque, soit, lui aussi, d'un seul tenant.

La fragmentation et la défragmentation concernent la représentation physique des fichiers sur un disque et leur morcellement en fragments, eux-mêmes constitués de clusters (des multiples de secteurs).

La fragmentation et l'hyper fragmentation ne posent pas de problème particulier pour les systèmes d'exploitation, dont Windows, ni pour les logiciels qui manipulent les fichiers. Les systèmes de gestion de fichiers FAT32 et NTFS ne sont pas gênés par cela et il n'y a pas de risque pour les données.

Par contre, l'hyper fragmentation engendre un ralentissement des applications manipulant massivement les fichiers fragmentés (en particulier Windows lui-même et son fichier de mémoire virtuelle (pagefile.sys)) à cause des innombrables accès mécaniques (déplacement des têtes de lecture) aux pistes/cylindres magnétiques sur la surface du disque.

L'hyper fragmentation provoque également une usure prématurée de la mécanique des disques durs, due à cette inflation des déplacements des têtes de lecture pour atteindre le patchwork des fragments des fichiers, dispersés un peu partout sur toute la surface d'un disque.

À partir de Windows 7, une défragmentation est faite en continu et en arrière-plan. Cette disposition préservant la santé des disques durs, et accélérant Windows, il est recommandé de ne pas la désactiver. Avec cette défragmentation automatique, il est rare de trouver un disque dont les fichiers seraient fragmentés à plus de 1%.




Pourquoi et comment naît la fragmentation ?

Pourquoi faut-il défragmenter de temps en temps ?

  • Notion de « Pistes magnétiques »
    Les surfaces magnétiques des disques durs sont organisées en « Pistes magnétiques » concentriques (ne pas imaginer une unique spirale qui ferait penser à un sillon de microsillon).

  • Notion de « Secteurs »
    Les pistes sont divisées en blocs constituant la plus petite unité physique de stockage de données, la plus petite quantité de données que peut manipuler, en une fois, l'électronique du disque, en lecture comme en écriture. Ces petits blocs sont appelés « secteurs » et font, historiquement (du temps des disquettes) 256 octets ou 512 octets.

Selon la taille du Disque dur et les choix du constructeur du disque dur, lors du « Formatage physique » (« Formatage de bas niveau »), une forme de formatage qui n'a rien à voir avec celle que peuvent faire les utilisateurs lorsqu'ils préparent (« formatent ») ou réinitialisent (« reformatent ») un disque, ces « secteurs » font 1024 octets, 2048 octets ou 4096 octets. Ne jamais faire de « Formatage de bas niveau » sans connaître les données techniques du disque - sa géométrie.

Les systèmes d'exploitation d'ordinateurs (il en existe des centaines, comme Windows, Mac OS/X, OS/2, NeXtStep, Unix, Linux, Solaris (Sun, SystemV), BSD, Android, etc. ... voir Systèmes d'exploitation (liste)), lors du « Formatage logique » (« Formatage de haut niveau » que peuvent pratiquer les utilisateurs), imposent un « Système de Gestion de Fichiers » (« SGF » ou « Système de Fichiers », « FS », « File System », « FileSystem »). Il en existe plusieurs, les plus connus dans le monde Microsoft Windows étant FAT32 (apparu en 1996 dans Windows 95b) et NTFS (apparu en 1993 dans Windows NT 3.1).

Lors de ce formatage, les « secteurs » sont regroupés en blocs logiques faits d'un multiple de « secteurs ». Ainsi, un bloc (appelé « cluster » en anglais) fait, par exemple, 4 « secteurs ». Le « cluster » est la plus petite unité logique de données que le système d'exploitation manipule en une fois. Le choix de la taille des « clusters » influe directement sur les performances du disque.

Fichiers de plus de 4GO (films...) et système de fichiers FAT

Les fichiers, sous le système de gestion FAT32, ne peuvent dépasser 4GO par fichier (d'où l'incapacité de copier des fichiers de plus de 4GO tels que des films en haute résolution). Il faut passer le disque en NTFS, ce qui se fait sans perte de données.

Voir quel est votre système de fichiers actuel sur l'un de vos disques et passer de FAT à NTFS.

Taille initiale, extensions successives de taille et fragmentation

Lorsqu'un fichier doit être créé, sur le disque, son nom est inscrit dans la table d'allocation (la table des matières du disque) et un pointeur indique où ce fichier commence (numéro de piste et numéro de secteur). Il utilise le nombre de « clusters » successifs nécessaire à la taille qu'il pèse à cet instant. Puis d'autres fichiers sont créés par l'utilisateur, à la suite du précédent, selon le même principe.

Plus tard, si l'utilisateur revient sur son premier fichier et y ajoute des données, ce fichier doit « grossir ». Le fichier va s'étendre, sur le disque, un peu plus loin, là où il y a de la place. Il est désormais en deux morceaux - le fichier est fragmenté.

Un pointeur est ajouté à la fin du premier morceau pour désigner le début du morceau suivant. Il en va de même de tous les autres fichiers qui sont, eux aussi, en morceaux (en « fragments »).

Puis, un jour, l'utilisateur détruit un fichier et libère ainsi la place de tous les fragments, dispersés sur le disque, que ce fichier occupait. L'effet gruyère, plein de trous, commence !

Un système d'exploitation inscrit et détruit, sans arrêt, des milliers de fichiers, qu'ils soient des fichiers de l'utilisateur ou des fichiers de travail (temporaires). Les fichiers finissent par ressembler à des patchworks de petits morceaux liés entre eux par des chaînages et répartis un peu partout, tandis que les fichiers détruits laissent des zones inutilisées qui font ressembler la surface magnétique d'un disque à un gruyère plein de trous.

Les fichiers sont devenus fragmentés !

Les pointeurs pour aller d'un morceau à un autre rendent les accès de plus en plus lents à cause des déplacements des têtes de lecture / écriture un peu partout sur la surface du disque (ce problème de déplacement des têtes de lecture n'existe pas avec les SSD). Il faut défragmenter les fichiers afin que chaque fichier soit d'un seul tenant (en un seul morceau), et il faut déplacer les fichiers pour que tout l'espace libre soit, lui aussi, d'un seul tenant.

Pour bien comprendre pourquoi et comment des fichiers se fragmentent et pourquoi et comment de « trous » apparaissent, nous allons imaginer un scénario « naïf » de créations / destructions de fichiers provoquant la fragmentation des fichiers et faisant apparaître des trous.

Fragmentation et Défragmentation des fichiers et espaces libres sous Windows
Fragmentation et Défragmentation des fichiers et espaces libres sous Windows

Sur le schéma précédent, étape par étape, on peut voir des fichiers devenir fragmentés et des « trous » se créer.

Accessoirement, chaque « ligne » du tableau représente 1 cluster.

  1. Étape 1
    L'utilisateur crée le fichier "A" (qui occupe 3 clusters même si son besoin réel est inférieur à un multiple de la taille de chaque cluster). On se rend bien compte de cette différence entre taille du fichier et taille occupée sur le disque avec cette capture d'écran :

    Occupation physique d'un fichier et taille réelle du fichier - Plus le fichier est petit, plus la perte de place, sur disque, est importante.
    Occupation physique d'un fichier et taille réelle du fichier - Plus le fichier est petit, plus la perte de place, sur disque, est importante.
  2. Étape 2
    L'utilisateur crée le fichier "B" (qui occupe 1 cluster). Le fichier s'implante à la suite du fichier "A".

  3. Étape 3
    L'utilisateur crée le fichier "C" (qui occupe 2 clusters). Le fichier s'implante à la suite du fichier "B".

  4. Étape 4
    L'utilisateur supprime le fichier "B". Son espace devient libre. Il y a un " trou ".

  5. Étape 5
    L'utilisateur crée le fichier "D" (qui occupe 1 cluster). Le fichier s'implante à l'ancienne place du fichier "B".

  6. Étape 6
    L'utilisateur ajoute des données au fichier "A". Ce dernier s'étend là où il y a de la place, soit après le fichier "C". Il est désormais fragmenté en deux morceaux. Des pointeurs sont créés pour assurer la liaison entre les fragments.

  7. Étape 7
    L'utilisateur ajoute des données au fichier "D". Ce dernier s'étend là où il y a de la place, soit après le second fragment du fichier "A". Il est désormais fragmenté, lui aussi, en deux morceaux. Des pointeurs sont créés pour assurer la liaison entre les fragments.

  8. Étape 8
    L'utilisateur supprime le fichier "C". Son espace devient libre. Il y a un " trou ".

  9. Étape 9
    L'utilisateur crée le fichier "E" qui occupe une partie d'un trou.
    Puis l'utilisateur crée le fichier "F" qui est trop grand pour occuper un trou et s'implante un peu plus loin.
    Puis l'utilisateur étend beaucoup le fichier "A". Il n'y a pas de trou assez grand pour la contenir d'un seul tenant et l'extension s'implante un peu plus loin pour ne former qu'un seul fragment, la seconde extension de ce fichier qui est désormais constitué de trois fragments.

  10. Étape 10
    L'utilisateur diminue la taille des données de "F". Il y a création d'un trou.
    L'utilisateur ajoute des données au fichier "D". Ce dernier s'étend dans un trou où il y a suffisamment de place. Seconde extension de ce fichier qui est désormais constitué de trois fragments.

  11. Étape 11
    Extension de "D" suite 3
    Extension de "F"
    Création de "G"

  12. Étape 12
    Suppression de "A"
    Création de "H"
    Création de "I"

  13. Étape 13
    Suppression de "H"
    Suppression de "E"
    Il y a quatre trous et un fichier fragmenté en quatre morceaux.

  14. Étape 14
    Défragmentation. Réorganisation des fichiers fragmentés en un seul segment. Regroupement de tous les espaces libres en un seul segment.

    • Contrairement à ce qui peut être lu parfois, la défragmentation ne consiste absolument pas à trier les fichiers dans un ordre quelconque.

    • Contrairement à ce qui peut être lu parfois, la défragmentation n'a aucune incidence sur la RAM (et les défragmenteurs de mémoire RAM sont des imbécilités à ne jamais utiliser).

    • La défragmentation peut être une opération assez longue si elle est pratiquée rarement sur des dizaines de milliers de fichiers représentant des centaines de milliers de fragments.

    • À partir de Windows 7, le système d'exploitation effectue, de lui-même, en continu (lorsque l'ordinateur n'est pas sollicité), une défragmentation sommaire qui permet d'espacer les défragmentations lancées avec un outil tiers (mais cela ne signifie absolument pas qu'il n'est plus du tout nécessaire de faire des défragmentations épisodiques à partir de Windows 7).

    • La défragmentation a besoin d'un espace de travail où elle va déplacer et regrouper les fragments de chaque fichier avant de déplacer à nouveau le fichier défragmenté vers son nouvel emplacement. L'estimation de cet espace de travail est de 15% de la taille totale du disque. Il faut donc que votre disque dur ne soit pas occupé à plus de 85% pour permettre une défragmentation assez efficace, sinon, elle aura tout de même lieu si vous la forcez, mais certains gros fichiers risquent de ne pas être défragmentés et la réorganisation totale du disque risque de ne pas être parfaite.

    • La défragmentation est beaucoup plus compliquée que ce schéma "naïf" ne le laisse entendre. En particulier, certains fichiers sont fixes et ne peuvent être déplacés. C'est le cas du fichier de mémoire virtuelle de Windows et de très nombreux autres fichiers système. La diminution de la taille d'un fichier n'entraîne pas la récupération immédiate de la place libérée.

    • Exemple réel d'un fichier fragmenté (ici, en 441 fragments)
      Exemple réel d'un fichier fragmenté (ici, en 441 fragments)




Peut-on/faut-il défragmenter un SSD ?

Ne tentez jamais de défragmenter un SSD.

Les SSD, basés sur de la mémoire flash, ont un nombre fixe d'écritures qu'elles peuvent supporter avant d'atteindre un point où le taux d'erreurs dépasse les capacités de détection et correction d'erreurs du contrôleur ECC (Error Checking and Correcting - ou parfois, par erreur, Error Correction Code) du SSD. Les constructeurs de SSD donnent une mesure appelée « endurance », exprimée en capacité d'écriture. Par exemple, en juillet 2020, le SSD interne Kingston KC200 de 1 TO a, d'après son fabricant, une endurance de 600 TO. Cela conduit, à terme, à une totale défaillance du dispositif. Pour prolonger l'efficacité du dispositif SSD, ne jamais tenter de le défragmenter (sans compter que la technologie SSD elle-même est balbutiante).

Il est d'ailleurs recommandé de ne pas utiliser un SSD à plus de 60% de sa capacité de manière à permettre à la logique de gestion du SSD d'utiliser, à tour de rôle, toutes ses puces, afin de répartir leur usure.

Les SSD ont des temps moyens d'accès aux données proches de zéro (il n'y a aucun déplacement mécanique). Une défragmentation sur un SSD aura un impact zéro en termes de performances, mais entraînera un risque de destruction totale du SSD.

Lire ce document d'un constructeur, en anglais, page 7. La défragmentation des SSD est inutile et dangereuse :
http://ocz.com/enterprise/download/guides/talos2_installation_guide.pdf (dans les archives du Web, l'original n'existant plus).

  • Il n'y a pas de déplacement mécanique de têtes de lecture, comme sur un disque dur.

  • C'est une perte de temps sur les SSD.

  • La défragmentation génère des volumes considérables d'écritures augmentant considérablement l'usure irrévocable de la mémoire.

Notez que les outils de défragmentation disposent de réglages permettant de désactiver la fonction de défragmentation pour certains volumes (cases à décocher).

Quant à Windows, qui dispose d'un outil de défragmentation automatique fonctionnant en permanence dès que le système détecte une inactivité, il ne défragmente pas les SSD sous Windows 8, 10, et suivants.




Faire, au choix, l'une des deux séquences suivantes, la seconde étant un peu plus courte :

Séquence 1

Séquence 2

1 Explorateur de fichiers

2 Clic sur « Ce PC »

3 Sélectionner un disque (une partition) quelconque. Un tableau présentera plus tard toutes les partitions et leur état de fragmentation.

4 Clic droit dans la zone de la partition sélectionnée. Une fenêtre contextuelle apparaît.

5 Clic sur « Propriétés »

1 Explorateur de fichiers

2 Clic sur « Ce PC »

3 Sélectionner un disque (une partition) quelconque. Un tableau présentera plus tard toutes les partitions et leur état de fragmentation.

6 La fenêtre des « Propriétés » apparaît :

4 Une barre d'outils apparaît. Clic sur « Optimiser » :

7 Clic sur l'onglet « Outils »

8 Clic sur le bouton « Optimiser »

Tableau présentant toutes les partitions et leur état de fragmentation.

9 On peut sélectionner une partition, même si elle a 0% de fragmentation.

10 On peut demander une réanalyse qui ne dure que quelques secondes. Le résultat 0% sera confirmé.

On peut demander une optimisation, malgré tout. Elle va se dérouler en plusieurs étapes, sans affichage graphique. Comme il y a toujours un petit reliquat de fichiers fragmentés, l'opération peut durer un certain temps pour pas grand chose.

Tableau présentant toutes les partitions et leur état de fragmentation.

5 On peut sélectionner une partition, même si elle a 0% de fragmentation.

6 On peut demander une réanalyse qui ne dure que quelques secondes. Le résultat 0% sera confirmé.

On peut demander une optimisation, malgré tout. Elle va se dérouler en plusieurs étapes, sans affichage graphique. Comme il y a toujours un petit reliquat de fichiers fragmentés, l'opération peut durer un certain temps pour pas grand chose.







Les notions suivantes n'ont aucune signification pour les SSD.

Si vous, l'utilisateur, avez la notion de « fichiers » ou de « répertoires », le système d'exploitation que vous utilisez, lui, a d'autres notions et réduit ses entrées/sorties (lecture/écriture) de/vers les disques durs à la notion de clusters. L'électronique du disque dur, elle, ne connaît qu'une seule autre unité de mesure, le secteur, et reçoit, du système d'exploitation, des ordres de lire ou d'écrire, à la volée, des « groupes de secteurs contigus » formant les clusters. Entre les secteurs, il y a des « gaps » et, lorsque le disque est constitué de plusieurs plateaux magnétiques empilés, l'ensemble des mêmes pistes sur tous les plateaux forment des cylindres.

Cylindre sur un disque dur
Cylindre sur un Disque dur

Voir les articles :