A existência de muitos arquivos em um sistema de arquivos afeta significativamente o desempenho do io?

3

Meu sysadmin está me dizendo que devemos remover arquivos estáticos antigos de um servidor e armazená-los em um banco de dados, porque ter muitos arquivos em um sistema de arquivos afeta o desempenho geral do sistema. O impacto é significativo? Temos cerca de 20.000 arquivos em um diretório no momento, e esperamos atingir 100.000 em algum momento nos próximos anos. Isto está em um sistema relativamente recente do Ubuntu LTS. Se 100.000 não é significativo, então qual número seria?

Editar: Isso é diferente de porque eu não me importo com o desempenho do diretório, mas sim com o desempenho total do sistema se o número de arquivos no um sistema atinge um número arbitrário. No meu caso específico, o sysadmin está argumentando que o Apache irá diminuir devido ao número total de arquivos em todo o sistema.

    
por samspot 27.09.2013 / 21:25

1 resposta

1

Desde o ext3, a manipulação de arquivos no sistema de arquivos é pelo menos tão rápida quanto encontrar uma linha indexada em um banco de dados. Isso é chamado de HTree (na verdade, muitos índices em bancos de dados ainda usam um BTree.)

link

Os sistemas mais antigos começariam a ter problemas em 1.000 arquivos porque a pesquisa era linear (inicie a partir do primeiro arquivo e percorra todo o diretório para encontrar o arquivo em que estava interessado.)

Por que usar um banco de dados?

PRO

Então, você só precisa transportar o banco de dados de um computador para outro (pense em um sistema em nuvem ...), especialmente se quiser usar a replicação automática entre computadores.

CON

Todo o banco de dados que você envia para o banco de dados passa pela rede! Isso significa um enorme gargalo. Se você não prevê o uso do recurso de replicação do seu banco de dados, é suficiente (para mim) evitar o uso do banco de dados. Isso terá um impacto enorme no seu sistema. Use o sistema de arquivos diretamente, já que de qualquer maneira o banco de dados estará fazendo a mesma coisa: salve os dados em um arquivo!

P.S. Seu administrador parece ser do passado ...

P.P.S. "Os índices do ext3 HTree estão disponíveis no ext3 quando o recurso dir_index está ativado." - Eu uso o ext4, então não me preocupo muito com isso, embora possa ser desativado no ext4; esperemos que esteja ligado no seu servidor ...

    
por 02.11.2013 / 23:58