Limpando o cache do seu Linux (de forma real)
Dica publicada em Linux / Avançado
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:
Agradecimentos :) SMarcell
Referências:
Limpando memória cache - Por SMarcell em SlackBR Fórum
man proc
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
#
# 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
http://www.vivaolinux.com.br/dica/Limpando-a-memoria-cache-no-Linux/