terça-feira, 22 de setembro de 2015

Linux "comendo" memória RAM dos servidores ?

          Por Richardson Lima

Olá pessoal,

Segue abaixo um pequeno texto que escrevi afim de compartilhar a minha experiência com análise de desempenho de servidores Linux. Este tema parace simples, mas muitos administradores ao redor do mundo se confundem bastante. Leia até o final e me diga o que você acha.

O que de fato está acontecendo ? 
Bom, o sistema operacional GNU/Linux faz o uso da memória RAM não utilizada para o cache de disco. Isso faz com que você pense que está com pouca memória, mas você não está!  

Por que o GNU/Linux faz isso?
O cache de disco torna o sistema muito mais rápido. Não há desvantagens, exceto para novos administradores do sistema operacional.  

E se eu quiser executar mais aplicativos e a memória RAM estiver alocada para cache de disco?
Se os aplicativos ou serviço do sistema desejam mais memória, o sistema operacional Linux simplesmente vai"devolver"  uma parte da memória que estava sendo usada como cache de disco para este fim, esta devolução é extremamente calculada por algoritmos do sistema operacional. O cache de disco pode sempre ser devolvido para aplicações de forma imediata. 

Então, Preciso de mais swap?
Não, o uso de memória RAM para cache de disco não tem como levar o sistema operacional a usar swap. 

Como faço desativar este recurso de alocação de memória RAM para cache?
Você não pode desativar o cache de disco. A única razão para que um administrador queira desabilitar o  recurso de cache de disco, é porque ele acha que é preciso deixar a memória longe de suas aplicações e serviços. Cache de disco faz com que as aplicações rodem de forma mais rápida, mas NUNCA  "rouba" a memória das aplicações, isto é extremamente gerenciado pelo sistema operacional. Portanto, não há absolutamente nenhuma razão para desativar este recurso!
Como faço para ver quanta memória RAM livre eu realmente tenho?
Para ver quanta memória RAM está REALMENTE livre para usar para seus aplicativos e serviços no sistema operacional, execute o famoso comando  free -m e verifique a linha que diz "- / + buffers / cache", isso mesmo, na coluna que diz "free". Veja o item selecionado na imagem abaixo, este é o valor REAL de memória FREE!