NFS não confiável com arquivos de números grandes em um diretório

2

Eu tenho um diretório NFS montado em um host. Esse diretório tem 0,6 milhão de arquivos de log agora e terá 1,6 milhão eventualmente. Os arquivos são pequenos, a maioria deles tem menos de 1 MB.

O problema é que não encontrei todos os arquivos de um dia naquele diretório com segurança.

Se eu executar esse comando abaixo, devo obter 4320 arquivos por um dia, mas posso obter qualquer número de 1 a 4320, por exemplo:

$ find /mnt/log -type f -name "some-prefix-rolling.log.2015-07-05*" | wc -l
2548

Eu tenho que ler este diretório como está. Eu não pude fazer nenhuma mudança, por exemplo colocar arquivos de log de um dia em uma pasta, porque alguns outros aplicativos dependem dessa configuração.

As opções de montagem são: ro, noatime, bg, disco, rsize = 32768, wsize = 32768, vers = 3

Alguém sabe como corrigir esse problema?

    
por Ben 20.07.2015 / 20:42

2 respostas

1

Embora o armazenamento de arquivos em subdiretórios seja ideal, o comportamento correto (e esperado) não é o que você está vendo. Algumas dicas para rastrear o problema:

  • verifique seu sistema de arquivos de origem: se você executar seu comando diretamente na fonte de dados, ele será concluído corretamente?
  • para muitos arquivos, seu sistema de arquivos de origem deve ser XFS ou ZFS . Evite EXT4 e BTRFS
  • tente ativar / desativar o cache do cliente ( Módulo FS-cache)
  • um ls -al | wc -l simples retorna resultados consistentes?
por 20.07.2015 / 21:02
1

Este post dá alguns dos limites superiores para sistemas de arquivos. Independentemente do "limite rígido" de quantos arquivos podem ser armazenados em um diretório, você rapidamente se deparará com problemas de desempenho ... Nos 10's de milhares de arquivos, não em centenas de milhares, especialmente se você estão usando um utilitário como find que tem que analisar o diretório inteiro.

    
por 20.07.2015 / 21:02

Tags