Pourquoi les disques se fragmentent-ils?

18

Dans le cadre de la maintenance régulière de Windows, je défragmente mon disque dur. Mais pourquoi le disque dur se fragmente-t-il sur les systèmes NTFS et FAT *? Apparemment, ext * ne fonctionne pas, pourquoi? Dois-je également défragmenter mes clés USB?

Simon Sheehan
la source
Ne décompactez pas les périphériques à semi-conducteurs. Pas même sur Windows de Microsoft. Il est mauvais pour le périphérique à semi-conducteurs et n'est pas nécessaire.
ctrl-alt-delor

Réponses:

22

La fragmentation n'est pas le problème qu'elle était il y a 30 ans. À l'époque, vous aviez des disques durs à peine plus rapides que les disquettes et des tailles de mémoire de processeur minuscules. Vous avez maintenant des disques très rapides et de grandes mémoires de processeur, et parfois une mise en mémoire tampon importante sur le disque dur ou dans le contrôleur. De plus, les tailles de secteur sont devenues plus grandes (ou les fichiers sont alloués dans des blocs plus grands) de sorte que davantage de données sont intrinsèquement contiguës.

Les systèmes d'exploitation sont également devenus plus intelligents. Alors que DOS 1.x aurait récupéré chaque secteur du disque tel qu'il était référencé, un système d'exploitation moderne est capable de voir que vous avez un fichier ouvert pour un accès séquentiel et peut raisonnablement prévoir que vous récupérerez des secteurs supplémentaires une fois que vous aurez consommé ceux que vous avez maintenant. Ainsi, il peut «pré-récupérer» les plusieurs (douzaines) secteurs suivants.

Et de plus, il est souvent préférable de ne pas avoir de fichier contigu. Sur un (grand) système où le système de fichiers est réparti sur plusieurs lecteurs, un fichier peut en fait être accessible plus rapidement s'il est également "réparti", car plusieurs disques peuvent rechercher le fichier simultanément.

Je défragmente tous les 2-3 ans, que ma boîte en ait besoin ou non.

[J'ajouterai que l'important n'est pas tant de savoir si les données sur le disque sont défragmentées que si l'espace libre le fait. Le FAT était terrible à ce sujet - à moins que vous ne défragmentiez les choses de plus en plus mal jusqu'à ce qu'il n'y ait pas deux blocs contigus d'espace libre. La plupart des autres schémas peuvent fusionner l'espace libre et allouer des morceaux d'une manière quelque peu "intelligente" afin que la fragmentation atteigne un certain seuil puis se stabilise, plutôt que de s'aggraver de plus en plus.]

Daniel R Hicks
la source
2
Je n'ai pas défragmenté un système depuis 2005. Là, je l'ai dit.
BlueRaja - Danny Pflughoeft
2
@BlueRaja, Si vous effectuez de nombreuses opérations sur disque sur un stockage en rotation, la défragmentation est utile. Récemment, j'ai constaté que l'exécution d'une build de mon application (2 Go de code source et d'actifs) était environ 20% plus rapide après la défragmentation, et la boîte avait environ 1 mois.
liori
2
Un message informatif et utile, mais pas une réponse à la question d'origine. Je suis surpris de voir cela accepté.
EMP
Je n'ai jamais défragmenté mon système. Il a maintenant environ 10 ans. Je viens de faire un scan pour la première fois, les niveaux de fragmentation sont très faibles (2,3% non contigus). J'utilise le système de fichiers ext4. De plus, je n'ai jamais exécuté d'analyse antivirus; Jamais de problème.
ctrl-alt-delor
13

TOUS les fragments de systèmes de fichiers. ext et d'autres systèmes de fichiers Linux se fragmentent moins en raison de la façon dont ils sont conçus - pour citer Wikipedia concernant le Guide des administrateurs réseau Linux :

Les systèmes de fichiers Linux modernes réduisent au minimum la fragmentation en gardant tous les blocs d'un fichier rapprochés, même s'ils ne peuvent pas être stockés dans des secteurs consécutifs. Certains systèmes de fichiers, comme ext3, allouent efficacement le bloc libre le plus proche des autres blocs d'un fichier. Il n'est donc pas nécessaire de s'inquiéter de la fragmentation dans un système Linux.

Je noterais cependant que ext4 a une défragmentation en ligne, donc la fragmentation est finalement un problème, même avec les systèmes de fichiers Linux.

Les systèmes de fichiers Windows ont leurs clusters placés partout où il y a de la place pour les mettre, et défragmente les exécute et les remplace. Sous Linux, les fichiers sont préférentiellement placés là où il y a suffisamment d'espace.

Je noterais cependant que Windows 7 a planifié des défragmentation, il n'est donc pas vraiment nécessaire d'exécuter la défragmentation manuellement.

Compagnon Geek
la source
Je note que la défragmentation programmée n'était activée par défaut sur aucun de mes ordinateurs.
Simon Sheehan
5
ext* ne défragmente pas au fur et à mesure. trac.transmissionbt.com/ticket/849 et h-online.com/open/features/… . ext*minimise la fragmentation en stockant des données contiguës à des emplacements aléatoires sur le disque. Les décalages aléatoires répartissent les fichiers contigus autour du disque et réduisent le besoin de fragmenter un fichier.
ta.speot.is
Un mot sur la façon dont Reiser / XFS évitent la fragmentation? Je me suis toujours posé des questions à leur sujet, mais ils semblent largement non documentés par rapport à l'ext.
new123456
1
modifié pour corriger ma réponse pendant que ces commentaires étaient faits. Ext4 fait une défragmentation en ligne de ce que je peux dire. ext 2/3 ne le sont pas.
Journeyman Geek
3
Par défaut dans Windows 7, la défragmentation est prévue mercredi à 1h du matin. Si votre ordinateur n'est jamais allumé à ce moment, la défragmentation peut ne jamais se produire. Je recommanderais personnellement que vous autorisiez la défragmentation planifiée hebdomadaire à s'exécuter (ou sinon une défragmentation hebdomadaire), car elle ne prend pas très longtemps et elle garantira à 100% que la fragmentation ne devient jamais un problème.
jcrawfordor