Por que a exclusão de um arquivo grande demora mais?

30

Meu entendimento é que rodar rmem um arquivo simplesmente o desvincula, marcando o espaço como livre no sistema de arquivos. Deverá então seguir que a exclusão de um arquivo sempre leva aproximadamente a mesma quantidade de tempo (ou seja, a velocidade da exclusão é proporcional ao número de arquivos, não ao tamanho dos arquivos).

Então, por que a exclusão de um arquivo de 15 GB demora mais de um minuto com um simples rm file.tar.gz?

Tom Marthenal
fonte
5
Qual sistema de arquivos?
Shane Madden
8
Em muitos sistemas de arquivos, cada "bloco" de espaço livre deve ser "marcado" como livre. Arquivos grandes têm mais blocos. Isso não é verdade para todos os sistemas de arquivos!
Chris S
@ShaneMadden boa pergunta; ext4 agora, mas eu notei isso em outros ext # 's também.
Tom Marthenal
É por isso que cada arquivo deve ter seu próprio sistema de arquivos virtualizado, para que os inodes possam ser apagados às cegas super rápido! <JEST>
thinice
11
Qual sistema de arquivos teria melhor desempenho nesse caso? Agora, estou usando uma unidade portátil para mover grandes discos de VM de uma máquina para outra e a demora para sempre está me deixando louco.
Motobói

Respostas:

39

Leva um tempo constante para desvincular um único bloco , mas os arquivos além do tamanho de um único bloco consistem em vários blocos vinculados, e quanto maior o arquivo, maior a quantidade de blocos vinculados.

Ignacio Vazquez-Abrams
fonte
14
<BSD Zealot> mumble mumble UFS mumble mumble atualizações macias mumble mumble excluir coisas panquecas mumble mumble mais rápidas ! </ BSD Zealot>
voretaq7
O XFS exclui arquivos grandes muito rapidamente, mas um grande número de arquivos pequenos muito lentamente.
Andrew
4
Um arquivo sempre usará apenas um inode . Ele usa vários blocos de dados.
Simon Richter
2
Um quarteirão para governar todos eles, um quarteirão para encontrá-los, Um quarteirão para trazê-los todos e na escuridão atá-los.
Rqomey