Linux Ext4 Filesystem Explicação necessária, 19 milhões Arquivos de um byte são iguais a 80 + GB?

2

Este é o problema, estou verificando domínios para meu rastreador, eu tenho 145 milhões de domínios para enganar a verificação em tempo real.

Armazenamento consumido:

80GB for 19 million files

Para fazer isso, estou criando uma estrutura de diretórios fora das primeiras quatro letras do domínio e, em seguida, criando um arquivo de um byte, significando que eu já vi esse domínio antes.

s/u/p/e/superuser.com

Eu crio a estrutura de diretórios como acima para evitar que qualquer diretório tenha uma quantidade irracional de arquivos ...

Detalhes do local do domínio / arquivo:

Domain: superuser.com
Root Directory: /home/tmc/tech/Data/Dupes/Domains/
Directory: s/u/p/e/
File Path: s/u/p/e/superuser.com
File Contents: .

Agora, suspeito strongmente que o uso de armazenamento de alguma forma tem algo a ver com a quantidade de diretórios e arquivos sendo criados, no entanto, criar apenas os diretórios não resulta em uso extremo de armazenamento, então tem algo a ver com esses diretórios preenchidos, novamente, estou tentando descobrir isso, é o que eu suspeito neste momento.

Alguém pode me explicar como o sistema de arquivos linux ext4 funciona em termos de consumo de armazenamento em relação a diretórios, arquivos e diretórios preenchidos com arquivos?

    
por Jeffrey L. Roberts 21.04.2016 / 19:32

1 resposta

5

Eu não sou especialista em ext4, mas como a maioria dos sistemas de arquivos, ele aloca espaço para arquivos em blocos. O tamanho de bloco padrão para o ext4 é de 4096 bytes, portanto, cada um dos arquivos de um byte usa 4096 bytes no disco. 19 milhões de vezes 4096 dá-lhe cerca de 80 GB.

Se você estiver apenas usando os arquivos como marcadores, poderá usar arquivos com 0 bytes de tamanho, caso em que o sistema não alocará um bloco para o arquivo.

    
por 21.04.2016 / 19:57