Arquivo de 15 janeiro, 2012

Limpeza de memória cache no Linux

Dias atrás me deparei com algumas máquinas que estavam apresentando lentidão em qualquer comando executado. Um simples ls demorava uma eternidade para ser executado, o que não poderia acontecer, já que as máquinas possuem muito mais memória do que eu ;-) .

Comecei verificando os processos que estavam sendo executados, quais usuários estavam conectados, fiquei observando o resultado do comando top e aparentemente tudo estava normal, vi que o consumo de CPU estava baixo, porém o consumo de memória estava lá nas alturas.

Já ia reiniciar a máquina quando olhei de novo para a saída do comando top e a linha que demonstra a estatística de uso do swap me chamou atenção (a saída abaixo é da minha máquina, a figura é somente para ilustrar):

Cabeçalho do comando top

O linux guarda um espaço na memória cache para programas e comandos que foram usados recentemente, permitindo que sejam executados de maneira mais rápida no futuro. E no caso das máquinas, esse espaço já estava chegando ao limite da memória física, causando lentidão na execução dos processos.

Ok, descobri o problema da lentidão, e um simples reboot resolveria o caso, mas em um ambiente de produção, isso não é interessante, então, pesquisando mais um pouco, localizei um procedimento que permite limpar a memória cache sem reiniciar a máquina.

Os procedimentos abaixo, devem ser executados como root:

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

O comando sync faz com que todo o cache do sistema de arquivos que está temporariamente armazenado na memória, seja descarregado no disco e liberado, evitando a perda de dados.

Ao inserir o número “1″ no arquivo /proc/sys/vm/drop_caches, é liberado somente pagecache, inserir o número “2″ libera pagecache e inodes. A opção utilizada, número “3″ faz como que o kernel libere pagecache, dentries e inodes.

Para checar novamente o uso da memória:

# free -m

ou

# top

Uma sugestão, para máquinas que ficam muito tempo ligadas, é criar um script com os comandos acima e inserir no cron, para ser executado regularmente.

Para saber mais:

http://www.kernel.org/doc/Documentation/sysctl/vm.txt
http://linux-mm.org/Drop_Caches
http://www.ibm.com/developerworks/linux/library/l-virtual-filesystem-switch/


Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 12 other followers

 

janeiro 2012
S T Q Q S S D
« dez   mar »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Flickr Photos

DSC00398

DSC00387

More Photos

del.icio.us


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.