Melhores opções para criar e montar um volume ext4 contendo 10M arquivos em um diretório

6

Quais são as opções apropriadas para mkfs e mount para um sistema de arquivos ext4 com uma pasta contendo > 10 milhões de arquivos para acesso de leitura?

O que eu tenho até agora:

umount /media/dirsizetest
mkfs.ext4 -L DIRSIZETEST -E lazy_itable_init=1 -E lazy_journal_init=1 -m 1 /dev/sda1
mount -t ext4 -o nodiratime /dev/sda1 /media/dirsizetest

Algum contexto está em ordem. Eu estou fazendo um experimento louco (OK, muito), envolvendo ver como diferentes sistemas de arquivos funcionam com uma única pasta cheia de milhões de arquivos pequenos. Eventualmente eu vou estar preenchendo uma unidade de 1TB para a capacidade de fazer isso (eu te disse que foi um experimento louco!).

O padrão de acesso é algo ao longo destas linhas:

Recreate the volume from scratch (using mkfs) and mount it.
Create a sub-directory, fill it with N files in sequence (named 1...N)
    (where N can be up to 2^63)
Read all files in order
Read all files in random order
Print how it takes

Meu habitat natural é o mundo do Windows NTFS, e o número de opções para mount e mkfs é um pouco assustador. Então, estou procurando orientação sobre quais opções são mais prováveis para gravar meu desempenho no pé.

Estou trabalhando em um ambiente de desktop do Ubuntu 12.04 de 64 bits.

    
por ligos 04.07.2012 / 01:35

2 respostas

2

Atenção: conselhos de segurança

Estas instruções são UNSAFE e não devem ser usadas no ambiente de produção sem precauções.

Por exemplo, uma placa RAID apoiada por bateria pode ajudar a diminuir os riscos.

Use a risco próprio

Se você gosta disso como um ambiente de teste, eu recomendo as opções ext4

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

Isso

  • desativa tempos de acesso em leitura
  • escreve metadados preguiçosamente
  • desativa a imposição de ordem adequada em disco de confirmações de diário
  • tenta evitar associar cabeçotes de buffer
  • remontas lidas apenas no erro

para mkfs.ext4 Eu só encontrei a opção

dir_index
    Use hashed b-trees to speed up lookups in large directories.

útil

    
por 05.07.2012 / 11:25
1

Alguma pesquisa eu encontrei os links a seguir. A resposta de Chris Perrin fornece uma pequena lista de opções; estes devem fornecer material de referência adicional.

por 06.07.2012 / 08:56