Limpar caches de disco e de filesystem no Linux

Palavras-chave: linux, cache, buffers, limpeza, memória, carregamento, disco, filesystem

O Linux mantém em memória os dados recentemente carregados do disco, e ali eles ficam enquanto possível. Isso acelera o processo de carregamento destes mesmos dados no futuro, como na execução de programas e leitura de arquivos.

As áreas na memória que carregam esses dados chamam-se caches. Você pode notar os caches em ação quando roda um programa pela segunda vez e ele carrega muito mais rapidamente que na primeira.

Mas às vezes é necessário fazer algum teste onde esse efeito de cache deve ser anulado, por exemplo, medir tempo de carregamento de um programa, ou o tempo necessário para processar algum arquivo. Já vi gente reiniciando a máquina só para poder ter uma medição confiável no tempo de carregamento de um programa.

Para economizar nosso tempo e paciência, e ter um efeito semelhante sem precisar reiniciar a máquina, podemos pedir ao kernel que limpe todos os caches que estiverem em memória. Basta usar uma entrada no /proc, existente nas versões mais recentes do kernel, rodando o comando:

echo 1 > /proc/sys/vm/drop_caches
This entry was posted in Linux. Bookmark the permalink.

3 Responses to Limpar caches de disco e de filesystem no Linux

  1. Ademar Reis says:

    Só uma observação: essa feature é relativamente nova no kernel (acho que 2.6.16 após uma rápida “googlada”). Segue um link com mais detalhes:

    http://linux.inet.hr/proc_sys_vm_drop_caches.html

  2. Ou tambem utilizando o “sysctl” para manipular os files do proc.

    [root@muriqui:home]# sysctl vm.drop_caches
    vm.drop_caches = 3
    [root@muriqui:home]# sysctl -w vm.drop_caches=1
    vm.drop_caches = 1
    [root@muriqui:home]# sysctl vm.drop_caches
    vm.drop_caches = 1
    [root@muriqui:home]#

    done
    =)

  3. Diogo says:

    Resolveu meu problema de lerdeza no Apache2 após certo tempo de utilização.
    “Armazenamento de lixo”.

    Obrigado

Comments are closed.