Armazenando milhares de arquivos em um diretório

1

Eu tenho um site que estou verificando problemas de desempenho e bugs, e me deparei com um código de cache que armazena milhares de arquivos em um único diretório.

Eu entendo que isso não é bom e que o I / O irá degradar e eu também ouvi falar sobre o potencial problema do inode.

E eu sei como consertar o código do cache, mas a questão é que, nesse ponto, a correção seria muito cara.

A questão : Qual é o pior cenário se eu viver como é agora? Como vai acontecer com o site? (neste momento, este único diretório de cache tem 400K arquivos)

Eu sou novo no Ubuntu. E eu entendo que isso pode ser um tópico fora do comum. Mas eu acho que esta é uma questão de "sistema" e não pertence à parte de 'programação' do stackoverflow.

Obrigado!

UPDATE: O sistema de arquivos é o UFS

    
por rinchik 31.01.2013 / 16:27

1 resposta

0

O UFS trabalha com inodes, portanto, o número máximo de arquivos depende da relação inode para espaço que foi definida. E isso é muito ... muito mais do que 400k.

2 problemas:

  • A criação de novos arquivos demora mais e mais tempo.

  • Você também encontrará outros problemas: ls será eliminado com Argument list too long. , pois expandirá todos os arquivos ( ls -l * se transforma em ls -l file1 file2 file3 file4 etc etc . O mesmo vale para rm e alguns outros comandos.

Eu sei que você não vai gostar, mas ... é melhor usar subdiretórios. Sim, pode ser um inferno de muito trabalho, mas você é obrigado a acabar tendo que fazê-lo de qualquer maneira. É melhor estar preparado agora enquanto você tem tempo do que depois que o servidor falhou.

Alternativa: - analise se você pode soltar alguns arquivos e não armazená-los em cache.

    
por Rinzwind 31.01.2013 / 19:28