Chega de servidor em nuvem sobrecarregado! Saiba como otimizar a sua Memória RAM
A memória RAM é um componente vital para qualquer tipo de computador. Por meio dela é possível avaliar o desempenho do servidor Cloud, servindo como indicador de performance das suas aplicações.
Um servidor de hospedagem não é como um computador que temos em casa. Apesar da similaridade de estrutura e termos, a forma de lidar com ambos é completamente diferente.
Precisamos saber utilizar de forma adequada os recursos de um servidor para atingir o pleno desempenho que ele proporciona.
Diversos fatores podem impactar nesse consumo de memória e por isso é necessário saber como utilizar a memória. Continue a ler este artigo e descubra como você pode otimizar sua memória RAM.
Processador e Memória
Para rodar um programa em um computador, você tem duas frentes que trabalham em conjunto: o processador e a memória.
Primeiro o sistema operacional interpreta a informação e sobe o programa para a memória, onde tudo fica armazenado para que o programa rode na sua tela.
O processador só se comunica com memória. Ele funciona através de cálculos, a cada comando dado, ele faz uma série de cálculos para executar aquela informação.
Por exemplo, para o envio de uma mensagem, o processador entende que precisa trazer uma informação X da memória e somar, ou subtrair, da informação Y - que também está na memória. Isso se aplica a tudo.
Como qualquer coisa que você for utilizar em um computador utiliza memória para poder ser processado, você não pode contar com volatilidade (que essas informações sumam), por isso você joga todas essas informações para um disco. Dessa forma elas ficam armazenadas de forma segura.
Então essa tríade anda sempre junta: processador, memória e disco. Ou seja, enquanto estiver executando um arquivo, você utiliza o processador e a memória, e quando não estiver executando, você guarda a informação em um disco ou uma memória não volátil.
Memória RAM, Cache e Swap
RAM é a sigla para Random Access Memory (memória de acesso aleatório). Ela é a memória primária (aquela que permite a leitura e escrita de informações pelo processador)
Ela é uma memória volátil e os dados não continuam nela se sua fonte de alimentação for desligada. É nela que os programas que estão em execução são armazenados, oferecendo rápido acesso a eles por parte do processador.
Quando acontece algum tipo de sobrecarga no seu servidor, que compromete o espaço disponível da RAM, o seu desempenho é diretamente prejudicado.
O Cache de memória fica localizada dentro do processador. Ela é é uma memória de alto desempenho que aumenta a velocidade no acesso aos dados e instruções armazenados na memória RAM.
Sabe quando você abre um programa, fecha sem querer e ele abre muito mais rápido quando você clica novamente? Isso acontece pois o cache de memória armazenou aquela informação por um certo período de tempo
O Cache e a RAM trabalham em constante sintonia para que a performance do seu servidor seja satisfatória. Mas quando o sistema fica sobrecarregado, e a RAM não dá conta, ele busca um último recurso, a Swap. Se o seu servidor precisou utilizar o swap, algo está errado no seu consumo de memória.
A Swap é um recurso de última instância, usada pelos sistemas operacionais para aumentar temporariamente a quantidade de memória do computador a fim de rodar os programas, e o próprio sistema, sem gerar o travamento total dele.
Como otimizar o desempenho de uma memória RAM
Já vimos como a memória RAM é importante para o funcionamento de um servidor. Agora podemos aprofundar em como otimizar o seu espaço em memória para que a performance e desempenho da sua aplicação não sejam afetados.
O servidor em nuvem é rico em recursos potentes. Ele deve suportar as necessidades do seu sistema operacional e demais processos próprios, permitindo que suas memórias não fiquem facilmente sobrecarregadas.
Mas ele não é igual um computador que a gente tem em casa. Então, é preciso saber utilizar os recursos dele, ou vai haver o comprometimento de recursos. A primeira coisa que fará você ter um bom uso de memória, é saber utilizar esses recursos de memória.
Existem algumas boas práticas para utilizar tais recursos:
Programas leves: O seu programa/ aplicação não pode ser pesado demais para a configuração do seu servidor. Erros no desenvolvimento do código da aplicação, acarretam no consumo intenso de memória.
Otimização: A falta de otimização de códigos ou do código fonte podem gerar erros, aumentando o consumo de recursos. Por isso, utilize plugins ou um bom framework em PHP, como o Laravel, para a implementação de suas aplicações
Versatilidade: Buscar programas (aplicações) dependem de recursos de memória para funcionar. A memória é um recurso finito, então não se pode utilizar de qualquer forma. Você precisa saber como está sendo feito.
Se o seu programa consome muita memória, busque junto ao seu programador métodos de utilizar os recursos dentro dele de forma racional.
Software atualizado: Mantenha o seu software sempre atualizado, por exemplo, se você possui um framework que não foi desenvolvido por vocÊ, como um WordPress ou Magento, mantenha sempre as atualizações em dia. Dessa forma, você garante que os códigos sejam sempre os mais novos e mais leves e não consome tanta memória do servidor.
Dimensionamento
O servidor não é uma caixa preta onde você consegue apenas jogar sua aplicação lá e ela passa a existir. Ele possui seus próprios recursos para integrar seus componentes.
Ou seja, no seu servidor, você encontra um sistema operacional competindo com o seu softwares; softwares em cima do sistema operacional que são utilizados para controle e administração dos recursos, entre diversos outros tipos de sistemas.
Por isso, é importante lembrar que isso ocupa uma pequena parte da sua memória. Por tanto, se o seu servidor possui capacidade de 100x e sua aplicação ocupa 10x, não significa que você conseguirá colocar 10 aplicações iguais nesse servidor.
Não existe um padrão para quantificar o quanto esses recursos ocupam. Mas em geral, é possível trabalhar em uma margem de 20%. Ou seja, você tem em média 80% de memória disponível para as suas aplicações.
**Uso de memória: **
Sempre que se trata de memória a coisa “depende”. É complicado calcular ao certo a quantidade de memória que uma aplicação vai consumir do seu servidor.
Por exemplo, se você tem um WordPress seco, com publicações e mídias inseridos sempre no padrão básico da aplicação, sem plugins, sem muitas publicações, etc, quando ele estiver rodando, vai consumir uma memória X.
Se você tem um WordPress desse mesmo jeito, mas com muitos posts, o consumo de memória já vai ser maior. Porque o tempo que o WP vai levar para coletar as informações e levar para as pessoas, fica maior.
Aí você adiciona um plugins, o tempo aumenta de novo, adiciona outro, aumenta. Mas ficou sabendo de um plugin de otimização que diminui esse tempo… por aí vai.
Mas você, fazendo testes,achou um servidor em nuvem que comporta bem o seu WP, ufa. De repente você começa a ter mais visitas no seu site.
O sistema que roda o seu site também precisa de memória para rodar. Então quando você passa a receber mais pessoas, ele consome mais memória.
Então é difícil saber exatamente o quanto todo o seu WP vai usar da sua RAM. Por isso, é muito importante observar os indicadores. O ideal é sempre buscar um meio termo de volume de dados, com o de acessos e a velocidade do site.
Quando o indicador começar a não ficar legal, você pode otimizar ou fazer uma limpeza no seu código. Se não funcionar, a solução será adicionar mais recursos no servidor.
Páginas de rolamento infinito:
Sempre que páginas com muito conteúdo forem nessa estrutura, como em blogs ou e-commerces, busque fazer com que o carregamento seja parcelado.
Toda vez que você coloca determinado conteúdo para carregar, sua memória está sendo consumida. Por isso, se você colocar para aparecer 1000 conteúdos em uma mesma página, vai demorar uma eternidade para o carregamento completar.
Busque parcelar seus conteúdos e exigir menos da memória do seu servidor.
Use CDN!
A CDN trabalha com o armazenamento de conteúdo que forma uma teia de servidores, digamos assim. Ela basicamente distribui todo o conteúdo de um determinado site para toda a internet de maneira rápida e descentralizada. Isso é feito por meio de diversos data centers espalhados pelo mundo que fazem essa distribuição.
Se você a utiliza, o visitante do seu site recebe os dados direto da CDN e ela só vai acessar o seu site se não tiver aquela informação já salva. Então se antes de começar a utilizar a CDN, você recebia 300 requisições por segundo, agora ela cai para uma ou duas.
Tenha uma boa configuração de Cache
Quando você utiliza Cache, você pega uma informação do seu servidor e retorna para o seu browser. E junto da informação ele manda uma mensagem que o browser pode confiar naquilo até sexta-feira às 15h, por exemplo, conhecido por tempo de expire. Até lá o browser não precisa ir no servidor pegar aquela informação de novo.
Sendo assim...
Não existe uma fórmula mágica para reduzir o consumo de memória RAM. Como os fatores de consumo de memória são muito fluidos, é importante saber utilizar os recursos, manter sempre atualizado, seguir as melhores práticas e fazer o paralelo dos indicadores vs. usabilidade. Fique atento para o tamanho do seu servidor, ele precisa comportar bem suas aplicações de forma confortável.