Limpando o cache do seu Linux (de forma real)

Publicado por Marco Carvalho de Oliveira em 04/11/2008

[ Hits: 27.384 ]

Blog: http://demoncyber.wordpress.com/

 


Limpando o cache do seu Linux (de forma real)



Geralmente me deparo com um problema da memória do meu computador, ela enche, não a física mas sim a de cache. Meu sistema inicia com uns 80MB de RAM com o KDE, mas o nosso amigo Firefox X.X tem o costume de alocar muita memória e não saber desalocar, e questões como não limpar o histórico de downloads e o histórico de páginas faz isso aumentar. Portanto ao abrir outros softwares o sistema fica lento. Para resolver este problema há algum tempo atrás vi um post do SMarcell no fórum brasileiro do Slackware Linux.

Segue a solução:

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

Inclusive conversando com o SMarcell ele me passou um script que ele usa no cron para limpar a memória quando ela está cheia, segue o código:

#!/bin/sh
#
# Salve este script no diretório /etc/cron.hourly e dê permissão
# de execução a ele. Desse modo a cada hora sera verificada se a
# porcentagem de memória utilizada pelo sistema atingiu o valor definido
# na variável 'percent'. Caso positivo, o script informará ao kernel
# que este deverá alterar o valor da opção 'drop_caches' para 3.
#
# Mais detalhes: 'man proc' -> /proc/sys/vm/drop_caches.

PATH="/bin:/usr/bin:/usr/local/bin"

# Porcentagem máxima de uso da memória, antes de executar a limpeza:
# Obs.: Altere conforme sua necessidade.
percent=80

# Quantidade de memória RAM no sistema:
ramtotal=`grep -F "MemTotal:" < /proc/meminfo | awk '{print $2}'`
# Quantidade de RAM livre:
ramlivre=`grep -F "MemFree:" < /proc/meminfo | awk '{print $2}'`

# RAM utilizada pelo sistema:
ramusada=`expr $ramtotal - $ramlivre`

# Porcentagem de RAM utilizada pelo sistema:
putil=`expr $ramusada \* 100 / $ramtotal`

# Checando porcentagem:
if [ $putil -gt $percent ]
then
   # Sincronizando os dados cacheados na memória com o(s) disco(s):
   sync
   # 'Dropando' cache:
   echo 3 > /proc/sys/vm/drop_caches
else
   # Remove-se as variáveis da memória e finaliza-se o script:
   unset percent ramtotal ramlivre ramusada putil
   exit $?
fi # Fim

Agradecimentos :) SMarcell

Referências:

Limpando memória cache - Por SMarcell em SlackBR Fórum

man proc

Outras dicas deste autor

Como extrair o conteúdo de pacotes deb em qualquer distro

Mais um search de pacotes para Slackware Linux

Instalando o OpenOffice 3 no Slackware Linux

Documentação de redes no Slackware

AST - Criando slackbuilds no Slackware

Leitura recomendada

Compartilhando conexão no Mandriva One e superior via modo texto

Bloqueio de internet via ACL

Testando desempenho de seu Web Server com SIEGE

Desafio Linux Hacker

Criar usuario no Linux sem senha

  

Comentários
[1] Comentário enviado por SmithuX em 04/11/2008 - 12:57h

Dá só uma olhada....

http://www.vivaolinux.com.br/dica/Limpando-a-memoria-cache-no-Linux/

[2] Comentário enviado por lcnrj em 04/11/2008 - 13:40h

Legal! Parece bem completo.
Eu uso esse script aqui, é o mesmo comando num script mais simples, que encontrei pesquisando por ai. Coloquei ele para ser realizado de hora em hora no cron ( salvo em /usr/bin/limpacache.sh e permissões chmod a+x /usr/bin/limpacache.sh ). Para usar manualmente: sudo limpacache.sh
Funciona mesmo.
===============================
#!/bin/bash
#limpando cache

#o seguinte comando é o responsável pela limpeza
echo 3 > /proc/sys/vm/drop_caches
===============================

[3] Comentário enviado por bigbruno em 29/03/2009 - 06:41h

Gostei do script, pretendo incluir na distribuicao BigLinux, qual nome devo incluir no cabecalho para que o autor do script tenha seus creditos mantidos?

[4] Comentário enviado por QuestLoder em 18/09/2009 - 19:25h

Show de bola para parabens


[5] Comentário enviado por removido em 06/02/2010 - 16:40h

Fera, vocẽ foi muito feliz nessa dica, vlw mesmo!
Abraço.

[6] Comentário enviado por Matz em 01/07/2015 - 15:26h


Resolveu definitivo os problemas de cache..
Parabéns e obrigado ..



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts