Os tamanhos de pastas grandes diminuem o desempenho do IO?

4

Temos um processo de servidor Linux que grava alguns milhares de arquivos em um diretório, exclui os arquivos e, em seguida, grava alguns milhares de arquivos no mesmo diretório sem excluir o diretório. O que eu estou começando a ver é que o processo de escrever está ficando cada vez mais lento.

A minha pergunta é a seguinte: O tamanho do diretório da pasta cresceu de 4096 para mais de 200000, como pode ser visto nesta saída de ls -l.

raiz @ ad57rs0b # ls -l 15000PN5AIA3I6_B total de 232 drwxr-xr-x 2 chef chef 233472 30 de maio 21:35 códigos de barras

No ext3, esses tamanhos de diretório grandes podem diminuir o desempenho?

Obrigado.

Aaron

    
por Aaron 03.06.2010 / 09:34

1 resposta

8

Sim, tamanhos grandes de diretório podem ser um problema. Geralmente, é melhor evitá-los, codificando arquivos em subdiretórios. Se isso não for uma opção, há um recurso ext3 que pode melhorar drasticamente o desempenho da pesquisa em diretórios grandes:

tune2fs -O dir_index /dev/$DEVICE
e2fsck -D /dev/$DEVICE

Isso habilita hashes b-tree de dados de índice de diretório, melhorando drasticamente o tempo de pesquisa. Claro, é possível que sua instalação já tenha isso ativado. Você pode verificar executando este comando e procurando dir_index na saída:

tune2fs -l /dev/$DEVICE | grep 'features:'

EDITAR: Além disso, convém considerar a configuração de noatime como uma opção de montagem. Não é um ajuste específico para diretórios grandes, mas pode oferecer melhorias consideráveis no desempenho sempre que ocorrem muitas atividades do sistema de arquivos.

    
por 03.06.2010 / 10:04

Tags