Quando fazemos um find
no linux, acredito que o kernel armazenará o resultado no buffer / cache. Vamos dizer depois de uma hora, algumas alterações da pasta e arquivos aconteceu, então minha pergunta é, quando fazemos o próximo find
:
i) O kernel obterá o resultado antigo errado armazenado em buffer / cache?
ii) Como o kernel já sabe algumas mudanças da pasta e arquivos e não pode usar de volta o resultado do buffer / cache? Está fazendo uma comparação entre o novo resultado e o resultado antigo? Isso não levaria mais tempo? Se não, como o kernel consegue essa escolha inteligente?
iii) Precisamos nos preocupar em descartar o cache (por exemplo: echo 3 > /proc/sys/vm/drop_caches
) para obter o resultado mais recente de nossa operação, digamos find
? ou há algum cenário em que precisamos fazer isso? (embora eu ache que não devemos precisar, mas apenas queremos ter certeza)
iv) Digamos que haja um cenário em que algum script do cron execute um comando (pode ser grep
um arquivo muito grande) que causa a maior parte do recurso do servidor. Nós matamos esse processo e truncamos aquele arquivo enorme. Esse cron job, em seguida, execute novamente após alguns minutos. Precisamos descartar o buffer / cache para evitar que o próximo grep
obtenha o resultado do conteúdo do arquivo armazenado nele para evitar que ele trava o servidor novamente? (desculpe se esta pergunta soa bobo demais para você)
Tags cache memory linux-kernel buffer