Nesta dica apresentarei um comando simples para limpar sua memória em cache.
Resolvi escrever sobre por ter visto duas vezes na mesma semana problemas relacionados a isso. Um foi aqui mesmo onde trabalho, onde estávamos percebendo que o consumo de memória em um dos servidores estava muito alto, porém com pouca atividade no mesmo, no qual percebi que nada mais era do que muita memória alocada em cache sem necessidade no momento. Desenvolvedores java... vai entender.. hauhauha (brincadeira.. :p)
E outro caso foi uma dúvida que surgiu, bem parecida, em um fórum do qual faço parte no qual um rapaz estava passando pelo mesmo problema no servidor dele. Com consumo exagerado de memória. Ele até colou o resultado do top no qual podíamos ver claramente que não haviam processos consumindo tudo aquilo de memória, e mais uma vez pudemos ver que o grande vilão era o cache, o que lhe passava essa impressão de memória totalmente consumida.
O comando para se limpar este cache é o seguinte:
# echo 3 > /proc/sys/vm/drop_caches
Exemplo:
Aqui vai uma saída do meu top antes de rodar o comando (reparem no consumo de memória armazenada em cache na última linha):
[2] Comentário enviado por maran em 10/07/2008 - 16:40h
Este é um comando muito útil kalib.
é de dicas assim que precisamos, e que queria ver todo dia aqui no VOL, que realmente me ajudassem no dia-a-dia.
Abraços
[3] Comentário enviado por kalib em 10/07/2008 - 16:54h
Huahuahaua
Vlw galera.. ;]
Depois devo estar postando uma dica sobre como tornar este processo automatizado..já que tive de fazer isto aqui na empresa..do contrário eu teria de efetuar este comando a cada meia hora no servidor dos desenvolvedores java... :p huahauha
[5] Comentário enviado por hlegius em 10/07/2008 - 23:12h
A dica é super interessante e útil, mas não vejo a memória cache como uma vilã. Ela ajuda muito no desempenho das aplicações aqui no meu notebook. As aplicações e bibliotecas ficam em cache, facilita o acesso à outras aplicações e mantém a máquina sempre na mesma velo =)
Agora mesmo estou com 2.8GB em cache. Isso que liguei o note eram 9 horas da manhã. Continua rápido =)
Quem trabalha com a máquina - como eu que sou programador - acho que vale muito a pena investir em ram e economizar stress de máquina no limite de ram =~
[7] Comentário enviado por kalib em 11/07/2008 - 08:32h
Acontece que o sistema operacional utiliza o cache como um ótimo recurso...sim..é verdade...auxilia em muitas vezes..
Mas, estranhamente, algumas aplicações..principalmente em java acabam por ignorar isso...como foi o que observamos aqui...e esquece que deixou algo alocado em cache... é como se alocasse...não desalocasse...e quando precisasse...alocasse mais memória ainda...enfim... o que no final do dia virava uma catástrofe. :/
[12] Comentário enviado por kalib em 14/07/2008 - 16:55h
Opa..grande archsmith.. ;]
Putz..nem tinha visto tua dica..se tivesse visto teria pulado direto para a segunda..que mandei hoje...em breve deve estar sendo publicada...mas segue essa mesma linha. ;]
[17] Comentário enviado por femars em 06/05/2009 - 17:49h
na boa... ainda acho melhor deixar o sistema gerenciar a memória cache! fiz uns teste aqui com java e, nao vejo o pq limpar, ainda acho que é até mais vantegem deixar o sistema gerenciando maior quantidade da mémória. Acredito que a establidade ao longo prazo ficaria melhor! ... Minha opnião apenas! Abraços!
[19] Comentário enviado por arturbmallmann em 01/08/2010 - 23:37h
Entendi a piada quanto a desenvolvedores java, eu programo java e aqui de uma hora para outra usando o eclipse ficou lerdo o sistema olhei os procesos e e tava la vários processos vindos da pasta do jdk, e o cache tava cheio, pensei que o sistema ia travar! use no frame principal de seus aplicativos java (setDefaultCloseOperation(EXIT_ON_CLOSE);) senao tu esquece de dar stop sempre e ficam varios procesos em execucao só o frame fica escondido