Localizar / ls de cache

10

Parece que na primeira vez que executo find ou ls em um diretório, demora um pouco para funcionar. Mas, a cada vez, é rápido, como se uma lista do conteúdo do diretório tivesse sido armazenada em cache ou indexada em algum lugar.

Existe uma maneira de preservar esse cache nas reinicializações do computador?

    
por Richard 08.06.2013 / 20:53

2 respostas

8

Você pode usar vmtouch para adicionar arquivos ao cache da sua página (cache de disco).

Coloque nohup vmtouch -dl <files or directories> & no seu arquivo /etc/rc.local para adicionar e bloquear arquivos no cache da sua página durante a inicialização. Se você quiser adicionar arquivos ao seu cache de página, mas não quiser bloqueá-los na memória, use o sinalizador -t em vez dos sinalizadores -ld .

Para obter mais informações sobre o cache da página, consulte aqui , aqui e em wikipedia .

    
por 08.06.2013 / 21:27
1

"Preservar em reinicializações", duvido. Mas você pode reconstruir trivialmente o cache na inicialização, que realiza quase a mesma coisa menos um pequeno atraso.

Crie um arquivo /etc/cron.d/rebuild-fs-cache e coloque o seguinte:

@reboot root /usr/bin/nice -n 19 /usr/bin/ionice -c 3 -t /usr/bin/find / >/dev/null 2>&1

Isso usa nice e ionice (que deve ser instalado por padrão e definitivamente disponível através do gerenciador de pacotes; o Debian os coloca em coreutils e util-linux , respectivamente) para diminuir a prioridade da find processa para os níveis mais agradáveis possíveis, o que significa que não deve interferir em nada que esteja sendo executado em seu sistema, mas levará um pouco mais de tempo para ser concluído. find irá passar por stat() everything, o que força o kernel a carregar os dados do sistema de arquivos do disco para a memória.

Uma vez que o cache tenha sido construído, contanto que ele não seja removido porque o sistema operacional precisa da memória para outra coisa, ele deve ser mantido. Eu tenho usado isso por um tempo e listas de diretórios, mesmo em grandes diretórios são significativamente mais rápido do que sem o trabalho cron acima, embora eu não possa citar quaisquer números exatos.

    
por 09.06.2013 / 00:12

Tags