Pastas grandes diminuem o desempenho de E/S?

Pastas grandes diminuem o desempenho de E/S?

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

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

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

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

Obrigado.

Aarão

Responder1

Sim, diretórios grandes podem ser um problema. Geralmente é melhor evitá-los fazendo hash dos arquivos em subdiretórios. Se isso não for uma opção, existe 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 permite hashes de árvore B de dados de índice de diretório, melhorando drasticamente o tempo de pesquisa. Claro, é possível que sua instalação já tenha isso habilitado. Você pode verificar executando este comando e procurando dir_indexna saída:

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

EDITAR: Além disso, você pode considerar a configuração noatimecomo uma opção de montagem. Não é um ajuste específico para diretórios grandes, mas pode oferecer melhorias consideráveis ​​de desempenho sempre que houver muita atividade no sistema de arquivos.

informação relacionada