Antes de fazer algum trabalho de benchmarking, como liberar a memória (RAM) que o Kernel Linux está consumindo para seus buffers e cache?
Observe que isso é útil principalmente para benchmarking. Esvaziar os buffers e o cache reduz o desempenho! Se você está aqui porque pensou que liberar buffers e cache era uma coisa positiva, leia o Linux comeu minha RAM! . A história curta: memória livre é memória não utilizada é memória desperdiçada .
Respostas:
Esvaziando o cache de buffers
Se você quiser esvaziá-lo, poderá usar esta cadeia de comandos.
Você pode sinalizar ao Kernel do Linux para descartar vários aspectos dos itens em cache, alterando o argumento numérico para o comando acima.
Para liberar pagecache:
Para liberar dentries e inodes:
Para liberar pagecache, dentries e inodes:
Os itens acima devem ser executados como root. Se você estiver tentando fazê-los usando
sudo
, precisará alterar a sintaxe ligeiramente para algo como estes:NOTA: Existe uma versão mais esotérica do comando acima, se você preferir:
Por que a mudança na sintaxe? O
/bin/echo
programa está sendo executado como root,sudo
mas o shell que está redirecionando a saída do eco para o arquivo somente raiz ainda está sendo executado como você. Seu shell atual faz o redirecionamento antes dosudo
início.Vendo o que há nos buffers e no cache
Dê uma olhada
linux-ftools
se você deseja analisar o conteúdo dos buffers e cache. Especificamente, se você deseja ver quais arquivos estão sendo armazenados em cache no momento.fincore
Com esta ferramenta, você pode ver quais arquivos estão sendo armazenados em cache dentro de um diretório give.
Por exemplo
/var/lib/mysql/blogindex
:Com a saída acima, você pode ver que existem vários arquivos * .MYD, * .MYI e * .frm que estão sendo armazenados em cache no momento.
Troca
Se você deseja limpar sua troca, pode usar os seguintes comandos.
Em seguida, use este comando para desativar a troca:
Você pode confirmar que agora está vazio:
E para reativá-lo:
E agora reconfirme com
free
:fonte
tee
para escrever como root:echo 3 | sudo tee /proc/sys/vm/drop-caches