Armazenando 64.000+ arquivos e crescendo em uma pasta (ext3)

2

Estou usando um diretório como uma área de preparo para meus arquivos antes de enviá-los para os buckets do Amazon S3. Este diretório temporário não possui estrutura subdiretório / a / b / c ou / ano / mês / dia ... são apenas arquivos /cdn/file1.png /cdn/file2.png etc.

Eu tenho cerca de 64.000 arquivos nesse diretório e seu tamanho é de 2.8GB agora.

Minha pergunta é: isso vai quebrar? Estou ciente de que não é ideal e estou trabalhando em paralelo para corrigir esse problema, mas isso pode levar algum tempo para migrar.

Espero que continue assim por mais um ano, o que significa aproximadamente um total de 400.000 arquivos em um diretório.

pensamentos? obrigado.

    
por Haytham Elkhoja 15.12.2011 / 17:43

2 respostas

1

Vai funcionar. Você pode não querer executar nenhuma operação em lote no conteúdo do diretório. ls e tal serão arrastados. Eu costumo usar sistemas de arquivos XFS para diretórios que possuem um grande número de arquivos que não são armazenados em uma árvore ...

Por exemplo ...

# mount
/dev/sdb1 on /app type xfs (rw,noatime,logbufs=8,logbsize=256k,nobarrier)

[root@Rizzo /app/prt]# ls -1 | wc -l
191487

[root@Rizzo /app/prt]# time du -skh .
27G     .

real    0m0.834s
user    0m0.236s
sys     0m0.566s

[root@Rizzo /app/prt]# time ls -lrta | tail -8
-rw-rw-rw-  1 PAB      PAB             733 Dec 15 11:48 09228885.TGZ
-rw-rw-rw-  1 PJD      PJD            8250 Dec 15 11:48 09228881.TGZ
-rw-rw-rw-  1 PJD      PJD            9803 Dec 15 11:48 09228881.LAY.TGZ
-rw-rw-rw-  1 PJD      PJD          127973 Dec 15 11:49 09228886.LAY
-rw-rw-rw-  1 PJD      PJD           31720 Dec 15 11:49 09228886.PRT
-rw-rw-rw-  1 PJD      PJD            5368 Dec 15 11:49 09228886.POF
drwxrwxrwx  3 PEB      SJS         5066752 Dec 15 11:49 .
-rw-rw-rw-  1 PJD      PJD           31726 Dec 15 11:49 09228886.TMP

real    0m2.673s
user    0m1.055s
sys     0m1.622s
    
por 15.12.2011 / 17:55
0

Eu aprendi as vantagens do ZFS ao lidar com um grande número de arquivos em um sistema de arquivos. Para imitar os benchmarks de ewwhite:

# ls -1 | wc -l
[...]
500982


# time du -skh .
303G    .

real    0m42.422s
user    0m3.889s
sys     0m25.546s

# time ls -lrta | tail -0
real    0m21.053s
user    0m5.503s
sys     0m15.496s

Isso está em uma máquina Solaris com um array SATA RAID10 de 6 discos e 4 GB de RAM, então nada é fantástico. O diretório é exportado via NFS para máquinas Linux usando-o. Não sei se a implementação do FUSE ZFS mostrará desempenho semelhante

A principal razão para não usarmos o XFS é porque não temos nenhuma experiência com ele, mas, como mostram os números da ewwhite, pode ser uma escolha bastante decente.

    
por 15.12.2011 / 18:09