Diga ao kernel para armazenar em cache strongmente um diretório em particular

6

Esta pergunta é uma reformulação do Otimização do desempenho do EXT4 .

Eu tenho um diretório que contém arquivos de compilação, a maioria é muito pequena, mas totaliza 5.6G.

Eu costumo acessar o mesmo subconjunto de arquivos (alguns milhares, por algumas dezenas de megabytes) repetidamente. O subconjunto muda diariamente (projetos diferentes, versões diferentes de bibliotecas). O que leva mais tempo quando eu uso parece ser buscas em disco. Por exemplo, se eu fizer um du duas vezes na segunda vez, leva tanto tempo quanto o primeiro, e a atividade do disco é semelhante.

Idealmente, gostaria de dizer ao kernel para alocar X Mb para os metadados e Y para os dados na pasta, como as opções para o cache nfs.

É possível, de alguma forma, além de montar o nfs a partir do host local e armazená-lo em cache em um ramdisk?

    
por silviot 11.11.2012 / 00:05

2 respostas

3

Eu acho que essa é uma pergunta que não tem resposta positiva. O Linux não fornece nenhum mecanismo para especificar quantos metadados e dados armazenar em cache por diretório para sistemas de arquivos como ext2, ext3, ext4, xfs etc.

    
por Colin Ian King 12.11.2012 / 20:01
1

Eu acredito que o que você quer é fazer um readahead completo () e / ou posix_fadvise () nos dados que você sabe que serão necessários no dia seguinte.

Se você não sabe ou os dados resultantes são muito grandes para serem armazenados em cache, você já sabe a resposta. O kernel não armazena tudo porque não há memória suficiente para isso.

    
por hdante 19.03.2013 / 01:43