10
votes

Comment voir la fragmentation d'un fichier spécifique?

Y a-t-il un outil qui me montrerait un fichier spécifique sur disque, à quel point c'est fragmenté? (Combien de cherchent le disque physique doit faire si je voudrais lire ce fichier de manière linéaire)


0 commentaires

5 Réponses :


10
votes

Vous pouvez utiliser DeviceIocontrol < / code> avec Fsctl_get_volume_bitmap , < Code> fsctl_get_retrieRieval_pointers et fsctl_move_file , voir Fichiers défragmentés .

Vous pouvez également trouver différents exemples de code si vous recherchez fsctl_move_file .
Voici un à C et une autre dans .NET .


0 commentaires

3
votes

FSUTIL FILE QUERYALLOCRANGES OFFSET = Longueur = vous montrera que les extensions du fichier, vous aurez besoin de droits d'administrateur.


1 commentaires

Ceci uniquement vérifie les gammes pour des fichiers rares. Si un fichier est solide mais fragmenté, il montrera une pièce.



17
votes

L'outil Sysinternals Contig avec paramètre -A < / code> peut le faire pour un fichier ou tous les fichiers d'un dossier et de ses sous-dossiers.


2 commentaires

@Smitjohnth, Wow, était-ce toujours utile? Je pensais que avec le SSD: S de la fragmentation d'aujourd'hui n'était plus un problème.


Les SSD sont toujours trop chers pour stocker toutes les merde là-dessus, même après que les prix du disque dur n'ont guère diminué au cours des dernières années. J'ai produit un gros fichier texte, j'ai essayé de le chercher, puis a remarqué que c'était trop lent. J'ai mesuré lire Sween puis j'ai commencé à soupçonner quelque chose ... maintenant c'est corrigé.



3
votes

et, bien sûr, "fragmentation" est suspect:

  1. Le fichier peut être en morceaux dans le même cylindre. Pas de recherche sur le dessus, juste une latence de rotation. Ou non comme les pièces peuvent être un ordre optimal (les chances sont proches de zéro pour celui-ci).
  2. Le fichier peut être "contigu" mais sur plusieurs cylindres. Même lire séquentiellement entraînera des cherches.
  3. Le fichier peut être sur un ensemble de rayures et vous n'avez aucune idée où sont les limites. Vous pouvez passer à un autre contrôleur, une autre broche ou une autre partition sur le même lecteur.

    Faites attention à quelles conclusions vous dessinez.


0 commentaires

5
votes

FileFraG est l'outil que vous recherchez, si vous utilisez Linux. Utilisez le paramètre -v avec le nom de fichier pour obtenir une liste détaillée de la fragmentation. http://linux.die.net/man/8/filefrag


0 commentaires