Como limpar a memória RAM que está sendo usada como memória cache?

6

Meu processador está usando uma grande parte da minha memória RAM como cache e eu quero limpá-lo por causa disso; isso vai prejudicar alguma coisa?

    
por Zignd 19.06.2012 / 20:55

4 respostas

26

Não há necessidade de fazer isso, o kernel gerencia a RAM de forma eficiente, usando-o para caches e buffers, se não for necessário por processos. Se os processos solicitarem mais RAM, o kernel desalocará caches e buffers, se necessário, para satisfazer o pedido.

Esta resposta ServerFault explica como interpretar o uso de memória relatado por free .

    
por 19.06.2012 / 20:59
8

Você não precisa fazer isso.

Existem duas possibilidades, se houver algo no cache:

  • é necessário novamente
  • não é necessário novamente

No primeiro caso, é melhor que permaneça na RAM o maior tempo possível, o que significa: outro processo precisa da RAM. Então, ele é descartado automaticamente sem a sua intervenção.

No segundo caso, não perturba. É um trabalho desnecessário limpar o cache e só pode ter consequências negativas.

    
por 19.06.2012 / 21:02
7
sync
echo 3 > /proc/sys/vm/drop_caches

Para mais detalhes, veja aqui.

Outra questão é por que você quer fazer isso?

    
por 19.06.2012 / 21:11
3

My processor is using a big part of my RAM memory as cache and I want to clean it up because of that; will it prejudice something?

Sim, muito do que está atualmente em cache precisará ser obtido do disco. O acesso do disco costumava ser 100 vezes mais lento que o acesso à memória. A velocidade da memória aumentou muito mais rapidamente do que a velocidade do disco, por isso é provável que seja 10s de milhares de vezes mais lento. Como resultado, qualquer coisa que exija algo que esteja agora no cache será mais lenta na primeira vez que você acessar os dados liberados. Se é humanamente perceptível depende de quanto precisa ser recuperado.

A RAM é uma commodity relativamente cara em comparação com o disco, mas ainda é bem barata. O cache não é permanente, e as coisas mais antigas no cache serão liberadas, se necessário, para algo como executar um programa ou fazer cache de algo usado mais recentemente.

    
por 20.06.2012 / 15:37