Arquivos acessados com frequência e uso de E / S

6

Estou curioso, do ponto de vista do desempenho, há uma vantagem em armazenar todos os arquivos em um diretório versus ter cada arquivo em um diretório separado? Eu não estou preocupado com organização.

Além disso, isso supõe que os arquivos serão acessados com frequência - assim, o uso de E / S será alto. Nenhuma listagem de diretório está envolvida, os arquivos serão puxados pelo caminho absoluto.

O ambiente do sistema é Linux, CentOS 5.3.

    
por x3sphere 02.07.2010 / 11:50

4 respostas

6

A resolução do caminho é proporcional (embora não linearmente) ao número de arquivos no diretório. Isso é verdadeiro mesmo para a resolução de caminhos absolutos, pois o sistema de arquivos ainda precisa verificar os nomes dos arquivos em cada bloco de diretório para resolver o caminho. Diferentes sistemas de arquivos têm diferentes características de resolução, mas, em geral, você começará a perceber o desempenho atingido em torno de 10.000 arquivos.

    
por 02.07.2010 / 17:36
0

A menos que os diretórios estejam em discos ou RAID diferentes, você não verá uma diferença perceptível, se eles estiverem todos em um diretório ou não. As operações de E / S de cada disco são reunidas em uma fila. Se eles estiverem em RAIDs diferentes, você verá a vantagem notável que está procurando.

    
por 02.07.2010 / 15:29
0

Se você tem memória suficiente para armazenar todos os arquivos, você considerou armazená-los na RAM? link

    
por 02.07.2010 / 15:33
0

ext3 faz algumas coisas legais:

http://www.ibm.com/developerworks/linux/library/l-fs8.html

Veja o cabeçalho da seção: Opções de registro no diário e latência de gravação
Isso permite que você "ajuste" o ext3 para seu aplicativo.

    
por 02.07.2010 / 22:34