Parte3 - Dicas de Shell - Liberando Memória
Autor: Badtux's Blog | Publicado: 2011-11-25T10:04:00-02:00

Continuando com nossa série Dicas de Shell, hoje vamos dar uma dica bem simples e rápida, porém que ajuda e muito.
O que vamos ver é como fazemos para liberar a memória que está alocada em buffer/cache. Muitos reiniciam a máquina como forma de liberar a memória, porém aqui veremos que não precisamos disso, com apenas um simples comando liberaremos essa memória que esta alocada em cache!
Na saída do comando free, podemos saber como está alocada nossa memória:

root@badtux-WS:~# free -m


&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;total &nbsp; &nbsp; &nbsp; used &nbsp; &nbsp; &nbsp; free &nbsp; &nbsp; shared &nbsp; &nbsp;buffers &nbsp; &nbsp; cached
Mem: &nbsp; &nbsp;3837 &nbsp; &nbsp; &nbsp; 3687 &nbsp; &nbsp; &nbsp; &nbsp;150 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp;290 &nbsp; &nbsp; &nbsp; 1339
-/+ buffers/cache: &nbsp; &nbsp; &nbsp; 2057 &nbsp; &nbsp; &nbsp; 1780
Swap: &nbsp; 7627 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp; 7626
root@badtux-WS:~#&nbsp;

Repare que temos por volta de 4Gb de RAM, onde 1339MB está alocada no cache e somente 150MB está livre!




Outra saída interessante e mais detalhada do free é a seguinte:



root@badtux-WS:~# free -mlot

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;total &nbsp; &nbsp; &nbsp; used &nbsp; &nbsp; &nbsp; free &nbsp; &nbsp; shared &nbsp; &nbsp;buffers &nbsp; &nbsp; cached
Mem: &nbsp; &nbsp;3837 &nbsp; &nbsp; &nbsp; 3773 &nbsp; &nbsp; &nbsp; &nbsp; 64 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp;285 &nbsp; &nbsp; &nbsp; 1240
Low: &nbsp; &nbsp; 3837 &nbsp; &nbsp; &nbsp; 3773 &nbsp; &nbsp; &nbsp; &nbsp; 64
High: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0
Swap: &nbsp; &nbsp;7627 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; 7625
Total: &nbsp; &nbsp; 11465 &nbsp; &nbsp; 3776 &nbsp; &nbsp; &nbsp; 7689
root@badtux-WS:~#&nbsp;

Bem, agora vamos ao que interessa, que é a liberação da memória que está alocada no cache. Para isso, basta executar a seguinte linha de comando:

root@badtux-WS:~# echo 3 &gt; /proc/sys/vm/drop_caches


Outra forma de se fazer isso é através do seguinte comando:


root@badtux-WS:~# sysctl -w vm.drop_caches=3&nbsp;

vm.drop_caches = 3


Utilizamos valor 3 para que ele limpe as paginas em cache, as entradas e inodes. Já o valor 2 limpa somente entradas e inodes e o valor 1 somente paginas em cache! ;)



Agora, podemos confirmar se realmente a linha de comando acima funcionou:

root@badtux-WS:~# free -mlot

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;total &nbsp; &nbsp; &nbsp; used &nbsp; &nbsp; &nbsp; free &nbsp; &nbsp; shared &nbsp; &nbsp;buffers &nbsp; &nbsp; cached
Mem: &nbsp; &nbsp; 3837 &nbsp; &nbsp; &nbsp;2486 &nbsp; &nbsp; &nbsp; 1350 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp;256
Low: &nbsp; &nbsp; &nbsp;3837 &nbsp; &nbsp; &nbsp; 2486 &nbsp; &nbsp; &nbsp; 1350
High: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0
Swap: &nbsp; &nbsp; 7627 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; 7625
Total: &nbsp; &nbsp; &nbsp;11465 &nbsp; &nbsp; &nbsp; 2489 &nbsp; &nbsp; &nbsp; 8976
root@badtux-WS:~#&nbsp;


Com isso, ao invés de apenas 150MB livres como antes, temos a 1350MB livre, uma boa limpeza!

Simples assim!!!

Em breve novos tutoriais da nossa séria Dicas de Shell! ;)


Parte2 - Dicas de Shell - Comando history e seus segredos! 
Parte1 - Dicas de Shell - Comando history e seus segredos!