Por quanto tempo o Linux (por padrão) armazena informações sobre arquivos no disco?

2

Estou testando se algumas alterações que fiz em algum código são efetivas ou não. Para isso, preciso saber como o cache do sistema de arquivos normalmente funciona. Estou assumindo que o padrão é o que estamos recebendo, já que provavelmente não ajustamos nada de interessante em relação a isso.

Essencialmente, se do meu código eu pergunto "esse arquivo existe?", a resposta volta em "x" milissegundos. Se eu perguntar de novo alguns minutos depois, a resposta volta muito, muito mais rápido, então acredito que haja algum cache acontecendo lá.

Por quanto tempo devo esperar se quiser testar novamente, com o cache nivelado, por isso demorará "muito" novamente? (Quero ver se consertei um problema de desempenho no meu aplicativo da web, mas só posso saber se ele foi corrigido se a informação sobre a existência de arquivos não estiver armazenada em cache, porque, se for, ela será executada rapidamente)

Eu sei que essa não é a pergunta mais eloqüente, e a resposta provavelmente é "depende", estou pedindo um padrão sensato. Em outras palavras, se eu testar novamente em 3 horas, ou 6, ou qualquer outra coisa, posso contar com ele não sendo armazenado em cache?

Tanto quanto eu posso dizer ... Este é um servidor Ubuntu, versão do kernel: 3.9.3-x86-linode52, versão Ubuntu: Ubuntu 12.04.3 LTS, hospedado no Linode. O sistema de arquivos é ext3

Obrigado!
Daniel

    
por Daniel Magliola 22.08.2013 / 22:24

1 resposta

7

O que você provavelmente está usando é o armazenamento inode , já que exists consultas podem fique satisfeito apenas olhando para o inode. O cache de arquivos é um pouco diferente. Felizmente, o linux fornece uma maneira de eliminar esse cache através do mecanismo drop_caches exposto em /proc/sys/vm/dropcaches .

To free dentries and inodes:
    echo 2 > /proc/sys/vm/drop_caches
    
por 22.08.2013 / 22:58