Pré-anexando a lista de arquivos do sistema de arquivos

0

Eu queria saber onde e de que forma uma lista de arquivos e diretórios é armazenada no sistema de arquivos ext4. O problema é que sempre que tento acessar um determinado diretório pela primeira vez desde a inicialização através do Nautilus, do Krusader ou qualquer outro gerenciador de arquivos - ele pode mostrar isso muito lentamente. Como vejo que ele acessa meu disco rígido, presumo que seja causado por HDD lento. Então, eu estava pensando em precaching toda a lista de arquivos do meu sistema no momento da inicialização e armazená-lo no cache de RAM para que ele não fosse descarregado durante o tempo de execução do meu sistema (Ubuntu 14.04 no meu caso).

É possível precache e preserve em cache a lista de arquivos e diretórios de todo o sistema de arquivos?

Eu pensei que isso poderia ser feito com o vmtouch, mas eu simplesmente não sei o que segmentar.

    
por Highstaker 05.05.2015 / 07:45

2 respostas

1

Na verdade, ele está examinando a lista de arquivos que está lenta. Algo assim deveria fazer:

find /home >/dev/null &

Ou seja, ele armazenará em cache os arquivos em /home . Mas ele manterá seu disco ocupado por um tempo, ele armazenará em cache subdiretórios interessantes e desinteressantes, e alguns subdiretórios ainda poderão ser removidos do cache antes que você realmente precise deles. Provavelmente não vale a pena.

    
por 05.05.2015 / 08:36
0

Para mostrar um diretório, esses gerenciadores de arquivos precisam pelo menos verificar a lista de nomes de arquivos no diretório e os tipos de arquivo e outros metadados. Estas são as mesmas chamadas que ls -l faz. Além disso, alguns gerenciadores de arquivos podem inspecionar o conteúdo do arquivo para fornecer informações mais precisas sobre o que está nele, como o utilitário file . Eles também podem criar pré-visualizações para determinados tipos de arquivo (por exemplo, imagens) e podem tentar extrair ícones de alguns tipos de arquivo que contêm um ícone.

Se você achar que isso é muito lento, tente configurá-los para exibir menos informações.

Para pré-ler apenas os nomes e metadados dos arquivos, execute

find ~ -type f >/dev/null

Para pré-ler o início dos arquivos também, execute

find ~ -exec file {} + >/dev/null

Eu não recomendo isso. Levará muito tempo e armazenará muitas informações na memória que nunca serão usadas (porque você não acessará todos os seus arquivos hoje). Tentar adivinhar os algoritmos de cache do sistema operacional é geralmente contraproducente.

    
por 06.05.2015 / 02:25