Pourquoi la suppression d'un gros fichier prend-elle plus de temps?

30

Ma compréhension est que l'exécution rmsur un fichier le dissocie simplement, marquant l'espace comme libre dans le système de fichiers. Il devrait ensuite s'ensuivre que la suppression d'un fichier prend toujours à peu près le même temps (c'est-à-dire que la vitesse de suppression est proportionnelle au nombre de fichiers, pas à la taille des fichiers).

Alors pourquoi la suppression d'un fichier de 15 Go prend-elle plus d'une minute avec un simple rm file.tar.gz?

Tom Marthenal
la source
5
Quel système de fichiers?
Shane Madden
8
Sur de nombreux systèmes de fichiers, chaque "bloc" d'espace libre doit être "marqué" comme libre. Les fichiers volumineux ont plus de blocs. Ce n'est cependant pas vrai pour tous les systèmes de fichiers!
Chris S
@ShaneMadden bonne question; ext4 en ce moment, mais je l'ai aussi remarqué sur d'autres ext #.
Tom Marthenal
C'est pourquoi chaque fichier doit avoir son propre système de fichiers virtualisé afin que les inodes puissent être effacés à l'aveugle super rapidement! <JEST>
thinice
1
Quel système de fichiers fonctionnerait mieux dans ce cas? J'utilise actuellement un lecteur portable pour déplacer de grands disques VM d'une machine à une autre et la prise de décision pour toujours me rend dingue.
motobói

Réponses:

39

Il faut un temps constant pour dissocier un seul bloc , mais les fichiers au-delà de la taille d'un seul bloc sont constitués de plusieurs blocs liés entre eux, et plus le fichier est grand, plus la quantité de blocs liés est grande.

Ignacio Vazquez-Abrams
la source
14
<BSD Zealot> mumble mumble UFS mumble mumble soft updates mumble mumble supprimer des trucs plus rapides mumble mumble pancakes! </ BSD Zealot>
voretaq7
XFS supprime les fichiers volumineux très rapidement, mais un grand nombre de petits fichiers très lentement.
Andrew
4
Un fichier utilisera toujours un seul inode . Il utilise plusieurs blocs de données.
Simon Richter
2
Un bloc pour les gouverner tous, un bloc pour les trouver, Un bloc pour les amener tous et dans l'obscurité les lier.
Rqomey