A situação é um pouco surpreendente. O UFS é um sistema de arquivos incomum para uma instalação Linux de produção. O acesso de gravação UFS no Linux normalmente precisa estar explicitamente habilitado no kernel, uma vez que ele foi considerado experimental por muitos anos:
CONFIG_UFS_FS_WRITE: UFS file system write support (DANGEROUS)
Say Y here if you want to try writing to UFS partitions. This is experimental, so you should back up your UFS partitions beforehand.
Como muitos sistemas de arquivos tradicionais, o UFS usa pesquisas de arquivos sequenciais nos diretórios. Isso de fato leva a problemas de desempenho para diretórios com muitos arquivos, já que o tempo de busca cresce linearmente com o número de arquivos. Nos BSDs, onde o UFS é frequentemente o sistema de arquivos padrão , esta questão levou diretamente à criação de Dirhash , uma pesquisa de tabela de hash para diretórios, que melhora significativamente o desempenho.
Até onde eu sei, o suporte a UFS no Linux não usa o Dirhash. Portanto, você pode esperar um aumento nos problemas de desempenho à medida que o número de arquivos em seu diretório aumenta. Em termos de acesso seqüencial, os arquivos de 400K são muito, e você pode esperar um impacto significativo no desempenho.
A divisão de arquivos entre subdiretórios gerencia efetivamente o problema de acesso sequencial. Alternativamente, você pode mudar para um sistema de arquivos que suporta uma estrutura de armazenamento de arquivos mais sofisticada. Por exemplo, o XFS implementa acesso rápido a arquivos para diretórios grandes através do uso de árvores B + .
Sua segunda preocupação foi com inodes. Geralmente, o número de inodes no seu sistema de arquivos é fixo, e isso geralmente é uma função da quantidade de espaço disponível no momento da criação do sistema de arquivos. Por exemplo, /etc/mke2fs.conf
contém a taxa padrão de inode (número de inodes por x bytes) para sistemas de arquivos ext.
Normalmente, esse número é muito maior do que o número de arquivos que você provavelmente criará e não é motivo de preocupação. No entanto, você pode verificar seu uso do inode com df -i
. Se as limitações do inode forem realmente um problema, mexer com diretórios não ajudará, já que os inodes são um conceito de todo o sistema de arquivos, independente do diretório. Nesse caso, você seria forçado a recriar o sistema de arquivos, configurando o parâmetro inode ( -i
) como mkfs
apropriadamente.