Le téléchargement / la copie de fichiers favorise-t-il simultanément la fragmentation?

10

L'écriture simultanée de plusieurs fichiers sur une partition de disque dur favorise-t-elle la fragmentation? Ces fichiers seraient-ils écrits entrelacés sur le disque dur?

Exemples:

  • Téléchargement simultané de plusieurs fichiers depuis le Web
  • Copie de fichiers de diverses sources sur la même partition
  • Téléchargement de plusieurs torrents

Est-ce différent entre les différents OS? L'allocation d'espace a priori pour l'ensemble du fichier est-elle une fonctionnalité spécifique à l'application?

Jonathan
la source
Bonne question. Je peux simplement noter que cela dépend de l'implémentation exacte du pilote du système de fichiers, qui est plus étroite que le système d'exploitation.
whitequark
4
Cela va être une réponse complexe ... Oui, c'est spécifique au système d'exploitation et à l'application. Certaines applications allouent de l'espace et d'autres pas. Parfois, il n'y a aucun moyen de savoir à l'avance combien d'espace alloué est requis, de sorte que ce type d'application peut se fragmenter davantage. Cela va aussi être spécifique au système de fichiers (vous utilisez peut-être fat32 ou NTFS dans Windows)
Jarvin

Réponses:

7

Cela dépend beaucoup du système de fichiers utilisé, dans une certaine mesure du système d'exploitation, ainsi que du programme qui ouvre le fichier. Il appartient à l'application de demander la quantité de stockage correcte lors de la création d'un nouveau fichier, et ce sont les fonctionnalités du système d'exploitation et du système de fichiers qui affectent le comportement d'ouverture et d'extension de ces applications lorsqu'elles ne savent pas combien d'espace demander.

Si un programme demande au système d'exploitation un fichier de 4,2 Go, le système d'exploitation trouvera un morceau d'espace avec 4,2 Go d'espace libre. A défaut, cela donnera au programme suffisamment de fragments d'espace libre pour enregistrer le fichier. Il y a quelques variables ici, c'est simplifié.

Si un programme demande au système d'exploitation un fichier de 4 Ko, le système d'exploitation le lui fournira. Si le programme continue de demander de nouveaux segments 4Ko contigus (vous téléchargez un fichier, et le programme ne savait pas combien il était) jusqu'à ce qu'il obtienne 4,2 Go d'espace, le système d'exploitation donnera volontiers de l'espace. C'est le cas où le système de fichiers et le système d'exploitation font des différences.

XFS, par exemple, est basé sur l'étendue, donc l'espace ajouté sera contigu jusqu'à ce qu'il ne puisse pas l'être. En outre, XFS peut être configuré pour pré-allouer de nouveaux fichiers avec une certaine quantité d'espace, ce qui peut minimiser davantage la fragmentation (utile sur les volumes de stockage de machine virtuelle, ainsi que sur les volumes ISO de DVD).

EXT2 / 3, NTFS, et je crois que Reiser, alloueront contigus jusqu'à ce qu'il ne puisse plus. Ensuite, cela commencera de nouveaux fragments. Cependant, chaque fragment peut avoir une taille de 4 Ko.

Prenons le pire des cas. Deux fichiers parallèles de 4,2 Go enregistrés en 4Ko à la fois en parallèle, dans le même répertoire. Le «même répertoire» fait partie du pire des cas, car certaines combinaisons OS / FS tentent de conserver les fichiers dans le même répertoire les uns à côté des autres. Pour certaines combinaisons OS / FS, les deux fichiers seront complètement entrelacés sur le disque. Pour d'autres qui essaient de conserver les fichiers ouverts sur différents segments libres, il peut n'y avoir aucune fragmentation ou très peu.

Un peu sur XFS (je pense que ext4 et btrfs peuvent aussi le faire). Dans ce cas, l'entrelacement ne sera pas 4Ko, ce sera ce que vous définissez votre valeur de taille d'allocation lors du montage du volume. Réglez-le sur 256 Mo et vous obtiendrez un fichier de 4,2 Go avec 17 fragments au lieu de plus d'un million. Utile pour les volumes stockant des fichiers volumineux comme les serveurs multimédias. Inutile pour les volumes contenant de nombreux fichiers minuscules et quelques gros.

C'est pour cette raison que les clients Bittorrent ouvrent des fichiers clairsemés lors du démarrage d'un nouveau téléchargement ou allouent simplement la taille spécifiée au total avant de commencer.

Lors de la copie de fichiers à partir de différentes parties de la même partition (ou diable, même à partir d'autres partitions), le processus de copie sait théoriquement la taille des fichiers copiés, donc demande dès le départ un espace de la taille appropriée au système d'exploitation; pas besoin d'ajouter des allocations pour les nouveaux fichiers.

SysAdmin1138
la source