Perché l'eliminazione di un file di grandi dimensioni richiede più tempo?


30

La mia comprensione è che l'esecuzione rmsu un file semplicemente lo scollega, contrassegnando lo spazio come libero nel filesystem. Dovrebbe quindi seguire che la cancellazione di un file richiede sempre all'incirca la stessa quantità di tempo (ovvero la velocità di eliminazione è proporzionale al numero di file, non alla dimensione dei file).

Quindi perché eliminare un file da 15 GB richiede più di un minuto con un semplice rm file.tar.gz?


5
Quale filesystem?
Shane Madden

8
Su molti file system, ogni "blocco" di spazio libero deve essere "contrassegnato" come libero. I file di grandi dimensioni hanno più blocchi. Questo non è vero per tutti i file system!
Chris S

@ShaneMadden buona domanda; ext4 in questo momento, ma l'ho notato anche su altri ext #.
Tom Marthenal,

Ecco perché ogni file dovrebbe avere il proprio filesystem virtualizzato in modo che gli inode possano essere cancellati alla cieca in modo superveloce! <JEST>
magrezza

1
Quale filesystem avrebbe prestazioni migliori in questo caso? Al momento sto usando un'unità portatile per spostare grandi dischi VM da una macchina all'altra e rm prendere per sempre mi sta facendo impazzire.
motobói,

Risposte:


39

Ci vuole una quantità costante di tempo per scollegare un singolo blocco , ma i file oltre la dimensione di un singolo blocco sono costituiti da più blocchi collegati tra loro, e maggiore è il file maggiore è la quantità di blocchi collegati.


14
<BSD Zealot> mumble mumble UFS mumble mumble aggiornamenti soft mumble mumble cancella roba più veloce mumble mumble pancakes! </ BSD Zealot>
voretaq7

XFS elimina file di grandi dimensioni molto rapidamente, ma un numero elevato di file di piccole dimensioni molto lentamente.
Andrew,

4
Un file utilizzerà sempre solo un inode . Utilizza più blocchi di dati.
Simon Richter,

2
Un blocco per dominarli tutti, un blocco per trovarli, Un blocco per portarli tutti e nell'oscurità li legano.
Rqomey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.