Página Inicial > Linux, Ubuntu > Limpar memória cache no Ubuntu

Limpar memória cache no Ubuntu

Acho que muitos devem utilizar (se não utilizam, deveriam utilizar…) um aplicativo chamado “System Monitor” ou “Monitor do Sistema” no Ubuntu. Trata-se de um aplicativo que monitora em tempo real uso da CPU/memória/rede/hd/etc… Para adicionar o aplicativo à sua barra do gnome, clique com o botão direito na barra e escolha a opção “Add to panel…” ou “Adicionar ao painel…”. Faça a busca por “System monitor” ou “Monitor do Sistema”.

Você configura o que quer monitorar e de quanto em quanto tempo o gráfico é atualizado. Exemplo:

Ubuntu - System Monitor

O primeiro quadro com as barras azuis é o monitoramento do processador e o segundo quadro é o monitoramento da memória RAM. Esse segundo quadro é o que interessa: a faixa verde corresponde à memória que está sendo utilizada no momento e a faixa vermelha é a memória que está em cache (o padrão da cor para memória em cache é um verde claro… eu alterei para vermelho para fácil identificação).

De uma forma bem simplificada o que acontece é o seguinte: o sistema automaticamente armazena na memória cache alguns programas, comandos, etc para que quando você execute novamente esse processo, seja executado de uma forma muito mais rápida, pois o sistema não terá que ler do disco novamente e sim direto da memória. Ex: quando você abre um programa (OpenOffice, Firefox, editores de texto, etc..), automaticamente o programa é armazenado na memória cache, para quando você executar o programa novamente o sistema irá executá-lo diretamente da memória em cache.

O problema é o seguinte: o kernel faz o controle desse cache, limpando-o de tempo em tempo entradas do cache que não são utilizadas por um determinado tempo, mas muitas vezes executamos programas mais pesados, como: apache, mysql, openoffice, aptana, eclipse, netbeans, etc… com isso o sistema ocupa muita memória no cache e isso pode deixar alguns programas mais lentos.

A solução para isso é você fazer a limpeza manual do cache, rodando os seguintes comandos (como root):

# sync

# echo 3 > /proc/sys/vm/drop_caches

O comando sync irá fazer a sincronização dos dados que estão em disco e na memória.

Ao escrever o número 3 no arquivo /proc/sys/vm/drop_caches o sistema irá fazer a limpeza instantânea do pagecache, dentries e inodes. Para limpar somente o pagecache, deve ser escrito o número 1 e para limpar somente dentries e inodes deve ser escrito o número 2.

Após rodar o comando, esse é o resultado do novo gráfico:

Cache limpo!

Repare que logo após rodar os comandos, a linha vermelha que correspondia à memória cache é liberada e some do gráfico!

OBS: essa entrada no /proc só é válida para kernel a partir da versão 2.6.16!

Para mais informações:

# man proc

Compartilhe:
  • Twitter
  • Facebook
  • LinkedIn
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Reddit
  • StumbleUpon
  • RSS
  • Technorati
  • Print
Categories: Linux, Ubuntu Tags: cache, Linux, memoria, Ubuntu
  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.