Por que a remoção de um pequeno número de arquivos grandes demora muito?

4

No meu disco rígido externo, com um sistema de arquivos ext3, eu removi 6 arquivos de 7,2 GB cada. Removendo aqueles ( rm * ) demorou surpreendentemente longo, um minuto ou mais. Como ele só precisa desvincular as entradas do arquivo do sistema de arquivos, por que deveria levar mais tempo para excluir um pequeno número de arquivos grandes do que excluir um pequeno número de arquivos pequenos?

    
por gerrit 07.02.2015 / 20:31

1 resposta

3

Ao deletar um arquivo, o sistema de arquivos ext3 irá realmente zerar os ponteiros de bloco no inode . Quanto maior o arquivo, mais blocos e mais ponteiros de bloco, a operação de exclusão demora mais em arquivos maiores do que os menores.

Este é um comportamento diferente de ambos os ext2, que simplesmente zera o inode e deixa os blocos contendo os ponteiros de bloco intactos (mas marcados como livres) e ext4, que usa extents (e, como as extensões são uma estrutura muito mais compacta, tem um desempenho de exclusão muito melhor, que diminui com base em quão fragmentado é o arquivo, em vez de quão grande ele é).

    
por 07.02.2015 / 21:04