O que faz com que os arquivos usem mais espaço em disco do que o tamanho do arquivo sugere?

3

du estava mostrando algumas unidades com muito menos espaço do que eu esperava, e ls -alh também mostrou que a soma no topo é um fator de três a mais que a soma dos arquivos individuais. Seguindo esta resposta , eu verifiquei com ls -s , e com certeza, a maioria dos arquivos estão usando três vezes mais espaço em disco que seu tamanho. O que causa isso e posso fazer alguma coisa para diminuir o uso do disco?

Editar

Estou vendo uma saída assim de ls -alhs :

 50K -rw-------   1 xxx xxx 9.0K Jan 29 20:34 20120103.gz
242K -rw-------   1 xxx xxx  67K Jan 29 20:53 20121130.gz

então o problema não é que os tamanhos dos meus arquivos sejam muito menores que 4k.

    
por pythonic metaphor 31.01.2014 / 18:11

1 resposta

0

Eu não sei qual sistema de arquivos você está usando ou o tamanho do cluster, mas aqui estão algumas informações genéricas que devem ajudar.

O sistema de arquivos aloca dados em grupos às vezes chamados de clusters (por alguns sistemas de arquivos). O tamanho do cluster é variável, mas em muitos casos, uma potência de 2 pelo menos 512 bytes de tamanho. Os 512 bytes representam o tamanho do setor físico de todos os discos rígidos, exceto os mais recentes, que possuem setores de 4096 bytes.

Cada arquivo usa pelo menos 1 cluster e, na maioria dos casos, o último cluster não é totalmente usado. O espaço restante em cada arquivo permanece não alocável. Usando FAT, FAT32, NTFS, não é possível ir mais alto que 64kb em cada cluster, mas o mesmo não acontece com o Linux.

ls -alhs

qual é o tamanho do arquivo no topo da lista do . e do .. ?

Então, se você tem muitos arquivos perdendo pequenas quantidades de espaço, isso resulta em uma grande quantidade de espaço desperdiçado.

Você teria que investigar os detalhes exatos do seu sistema de arquivos para encontrar esses dados. A alteração dos sistemas de arquivos pode ter um grande impacto na sobrecarga. Eu tentei o BTRFS e desperdicei toneladas de espaço. Eu fiz uma nova instalação e executei atualizações e foi como 2x ou mais superior a outros sistemas de arquivos.

Ext4 também faz mal com um grande número de arquivos pequenos, um exemplo perfeito disso é que 1 cópia do código fonte do kernel tem 10.000 milhares de arquivos pequenos.

É inteiramente possível que o seu sistema de arquivos seja responsável pelo espaço desperdiçado e a única maneira de mudar isso é mudar o sistema de arquivos.

Além disso, alguns sistemas de arquivos suportam snapshots que permitem cópias de segurança do mesmo arquivo a serem armazenadas no sistema de arquivos. A distribuição controla como o recurso é configurado e se está ativado por padrão. Cada arquivo que você altera ou exclui poderia estar em um instantâneo e, na verdade, não ser excluído. Existe um comando para remover os instantâneos antigos, mas não me lembro qual é o comando.

    
por 02.02.2014 / 07:01