Pular para o conteúdo

Limpando o cache do seu Linux (de forma real)

Dica publicada em Linux / Avançado
Marco Carvalho de Oliveira demoncyber
Hits: 28.402 Categoria: Linux Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Agradecimentos :) SMarcell

Referências:

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

man proc

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Documentação de redes no Slackware

Instalando o OpenOffice 3 no Slackware Linux

Instalando Gnome, OpenOffice 3 e Firefox 3 no Slackware 12.1

Mais um search de pacotes para Slackware Linux

Teclas de atalhos para janelas no Vim

Slackaware 10.2 - Escolhendo o kernel 2.6 direto na instalação

Como reinstalar GRUB com live-CD do Ubuntu 9.04

APP Notify - Como fazer seu servidor Linux enviar notificação para o celular

Sincronizando relógios dos micros na rede sem NTP

Dois ambientes gráficos no mesmo 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

Entre na sua conta para comentar.