Limpando memória cache Linux

Publicado por Luis Vitorio em 13/09/2011

[ Hits: 12.068 ]

Blog: http://twitter.com/vitorioluis

 


Limpando memória cache Linux



Tive a algum tempo atrás problemas em um servidor squid de estouro de memória, então achei essa solução.

Precisamos adicionar alguns comandos no crontab:

# crontab -e

# Esta duas linhas permite que não digite o caminho do comando por exemplo:
# quer agendar um desligamento padrão sem estas linhas ficaria assim:
#00 18 * * * /sbin/halt
# com as linhas
#00 18 * * * halt

# 1ª linha shell usado para executar os comandos
# 2ª linha Variável de sistema que pode ser adquirida com o comando #echo $PATH

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow command
*/10 * * * echo 3 > /proc/sys/vm/drop_caches && sysctl -w vm.drop_caches=3

# A linha acima faz com a cada 10 minutos o comando seja executado ou seja:
# A cada 10 minutos a memoria cache será totalmente limpa.

Testado em vários servidores Debian e filhos, funcionando perfeitamente.

Outras dicas deste autor

Melhorando a segurança do SSH

Recuperação de sistema de arquivos por queda de energia

Assistindo TV Canção Nova no Linux

Utilizando o Aptitude

Instalando o Webmin para Gerenciar Servidores

Leitura recomendada

Squid autenticando no Active Directory (AD) Windows 2008 Server

Placa de vídeo - S3 Unichrome - RESOLVIDA

Removendo: the virtualbox kernel service is not running [Resolvido]

Iniciado Slackware no modo Grafico e com botão de desligar

Arquivos de ajuda de um pacote instalado no Linux

  

Comentários
[1] Comentário enviado por hellupline em 13/09/2011 - 02:19h

na verdade pra servidor isso nao eh necessario, o proprio kernel faz uma limpa de vez em quando, liimpar o cache nao deixa a maquina mais rapida, ( na verdade em certos casos, tem efeito contrario )
pois as vezes o kernel sabe que o que precisa ja esta na memoria e evita de carregar denovo, e ele mesmo apaga o cache quando precisa de memoria

[2] Comentário enviado por cromado em 13/09/2011 - 08:19h

É válido, más seria interessante você verificar, por que o squid está cacheando tanto. as vezes vc pode ter mais benefícios ainda.

[3] Comentário enviado por vitorioluis em 13/09/2011 - 08:22h

Coloquei todas as politicas de memoria possíveis e até troquei de servidor do Ubuntu 8.04 para o Debian 5 E não foi resolvido. Essa foi minha solução que tem funcionado muito bem.

[4] Comentário enviado por ramoni em 14/09/2011 - 16:52h

Ta certo.. afinal, memoria cache pra que ? Vai ficar ocupando espaco a toa mesmo ne...
A ideia é tão boa que não sei como os desenvolvedores do kernel nao pensaram nisso antes.....

[5] Comentário enviado por rogerboff em 16/09/2011 - 12:55h

Como o hellupline disse, isso é desnecessário, pois o próprio kernel faz isso automaticamente, limpando quando não precisa mais do arquivo em cache ou quando necessita de mais memória, por isso os desenvolvedores do kernel habilitaram esse recurso de cache, sem contar que proverão uma maneira de você descarregar o cache da memória manualmente com descrito na dica.

Ao limpar o cache de memória, o sistema é obrigado a ler o disco e carregar o programa, biblioteca ou arquivo novamente na memória, o que acaba tornando o processo mais lento, sendo que você pode notar isso ao abrir um programa pesado e fechando posteriormente e abrindo novamente, sendo que na primeira vez que ele é aberto o processo demora mais, já na segunda inicialização do mesmo, o programa é aberto mais rapidamente devido ao cache.

No caso de estar havendo falta de memória ou lentidão do sistema operacional, seria necessário verificar os programas que estão rodando e as configurações de cache habilitadas, ajustando conforme a necessidade.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts