Linux: Adicionando memória virtual “Swap” ao VPS

Vamos mostrar neste tutorial como adicionar uma partição Swap (memória RAM virtual) em um servidor Linux.

Em nossa nova série de tutoriais apresentamos uma solução econômica de hospedagem (VPS com Wordpress e Servidor de Emails). Clique neste link e veja como Instalar um servidor Debian 7 e ISPConfig 3.

Nas próximas semanas estaremos publicando vários artigos melhorando o desempenho do servidor. Hoje falaremos da memória de troca, também conhecida como Memória Swap.

Se você seguiu nossas dicas até aqui e instalou o ISPConfig com WordPress e MySQL num servidor de 5 dólares, talvez esteja com erros de comunicação com o banco de dados. Isto se deve pelo fato de que o MySQL está sendo desligado por falta de memória. Uma solução seria contratar um servidor com mais memória RAM, porém ativar a partição virtual “Swap” também soluciona o problema.

* Para verificar se o MySQL está sendo desligado por falta de memória abra este arquivo /var/log/mysql/error.log e procure nas últimas linhas do log por uma mensagem parecida com esta: “150106 18:04:02 InnoDB: Fatal error: cannot allocate memory for the buffer pool”.

Instalando e configurando a Memória Swap:

* Os comandos abaixo referem-se ao nosso servidor Debian 7.0 Wheezy, que <instalamos anteriormente>. Lembre-se de fazer login como “root” para executar os comandos de instalação e configuração. Editaremos os arquivos usando o WinSCP e Notepad++ conforme mostramos <neste tutorial>.

1.Verifique se a memória de troca já não está instalada (Ambos os comandos abaixo podem ser usados para checar. *Se não houver Swap configurada: com o comando swapon mostrará uma tabela em branco, e com o comando free -m mostrará todos os valores zerados na linha “Swap:”

> swapon -s
> free -m

2.Verifique também o espaço livre no HD do servidor. Se você segue nossos tutoriais e configurou o servidor de 5 dólares, o espaço total disponível é 20Gb. Com a instalação do Debian e WordPress deve estar sobrando uns 17Gb, digite o seguinte comando para exibir as partições montadas (Na última coluna “Mounted on”, a linha que nos interessa é a primeira que contém a partição raiz “/”):

> df -h

3.Crie a partição Swap em disco.

* O tamanho da partição é discutível, existindo um consenso de que o dobro da memória RAM física é o suficiente para o sistema. Mas e se o servidor tiver 8Gb de RAM e 20Gb de HD? Obviamente você não criaria uma partição Swap de 16Gb. Em nosso caso não precisamos criar exatamente com o dobro da RAM, que é 512Mb. Se você não planeja reparticionar o HD para revenda de hospedagem então podemos usar um pouco mais de espaço para a Swap, lembre-se que nosso VPS está em um disco SSD (a memória de troca é um pouco mais lenta que a RAM por ser gravada em disco, porém temos um SSD 🙂). Faremos a configuração neste servidor com 2Gb de Swap, ajuste conforme necessário mas não coloque valores muito altos para não se arrepender depois.

> fallocate -l 2G /swapfile

4.Digite o comando abaixo para verificar se criou corretamente:

> ls -lh /swapfile

* * Deverá aparecer uma linha parecida com esta:

-rw-r–r– 1 root root 2.0G Apr 3 14:19 /swapfile

5.Agora vamos acertar as permissões do arquivo e habilitar o sistema, transformando a partição em uma memória Swap:

> chmod 600 /swapfile
> mkswap /swapfile
> swapon /swapfile

* * Após digitar os comandos acima você já pode ver que o Swap está ativo. Verifique com os comandos descritos no passo 1.

6.Nossa memória virtual já está pronta e funcionando. Porém, se reiniciarmos o servidor teríamos que refazer todos os passos novamente. Para tornar a partição permanente edite o arquivo /etc/fstab (note que fstab é um arquivo e não um diretório) e insira uma nova linha, salvando após editar:

/swapfile   none    swap    sw    0   0

* * Separe cada coluna por espaço ou TAB, não importa. Digite ENTER após o último texto, tem que existir uma linha em branco no final.

7.O arquivo “fstab” é essencial para a inicialização do servidor, então se houver algum erro na edição você terá um pouco de dor de cabeça para consertar. Vamos evitar isso e testar se está tudo certo, digite o comando:

> mount -a

* * Se não houver problemas o resultado do comando será nulo, não exibindo nada na tela.

8.Pode-se monitorar o uso da memória digitando o comando abaixo (o parâmetro -n 5 define uma nova leitura a cada 5 segundos):

> watch -n 5 free -m

* * Pra sair da tela do watch digite “CTRL + C”


Conclusão:

Seguindo as etapas acima é possível extinguir ou minimizar os problemas críticos ao sistema gerados por OOM (Out Of Memory). Para ferramentas que sobrecarregam o banco de dados, como o WordPress por exemplo, configurar a memória Swap é essencial.

* * Pode-se ainda “tunar” a configuração da memória virtual para que use o arquivo de trocas com menor frequência, mas em nosso caso não haverá necessidade.


 Linux: Adicionando memória virtual “Swap” ao VPS
Tutorial ISPConfig 3 〉〉 ÍNDICE ANT PROX

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

  • Para discutir sobre este tutorial inicie um tópico no Fórum da Comunidade:

    https://fatorbinario.com/comunidade/forum/tutoriais-fator-binario/

    *Registre-se na Comunidade e ajude compartilhando conhecimento. Responderei às dúvidas com a mesma rapidez de sempre.

    Muito Obrigado.

  • Andreí Rib Preto

    Olá

    Ótimo artigo! Depois de criada esta memoria swap, é possivel redimensiona-lá? É possivel também deleta-lá? Como?

    Obrigado.

  • Bom dia Andrei,

    Sim, é possível remover seguindo os passos de forma inversa. Porém cuidado, faça um snapshot do VPS antes de executar esse procedimento para não perder dados importantes já alocados na memória virtual pelo servidor.

    – Entre no fstab e delete a linha criada, digitando mount -a para verificar se não ficou algo errado.

    – O comando swapoff /swapfile irá desligar a swap

    – E o comando rm /swapfile irá deletar o arquivo alocado

    Para redimensionar pode-se utilizar o gparted.

  • Andreí Rib Preto

    Legal Luis

    Obrigado pela rápida resposta. Estou me aventurando numa VPS da digital ocean e cheio de dúvidas… seus tutoriais tem sido de grande ajuda.

    Abraços.

  • Nos tutoriais você encontrará todos os truques e macetes para gerenciar o VPS de forma tranquila. Siga corretamente e qualquer dúvida pergunte.

    Cadastre-se na Comunidade também, será muito mais fácil de seguir pois tem opções de favoritar links e assinar tópicos.

  • Iori Yagami

    Como esse site ja me ajudou! seu conteudo é incrivelmente amplo.. esse site ja é minha segunda casa.. se nao a primeira srsrs… passo o tempo q tenho e posso aqui! É muita coisa! ja to com meu wordpress tinindo no VPS da DO.. fiz tudo via ssh pelo meu desktop debian no debian vps… mas aqui Nao encontrei ainda.. que me ajudasse em como transferir meu dominio que ta na hostgator, registrei la 3 dominios e quero transferir os 3 para meu VPS da digitalocean..como e onde fazer isso?

  • Bom dia Iori,

    Até o final do ano passado o Fator Binário também estava na Hostgator. Você não precisa transferir o domínio, apenas apontar os NameServers para a DigitalOcean.

    Se os seus domínios são “.br” então você pode acessar o Registro BR para fazer a mudança, veja como: http://faq.hostgator.com.br/content/55/370/pt-br/alterando-os-dns-de-seu-dom%C3%ADnio-no-registrobr.html

    Ou se os domínios forem “.com” ou até mesmo se você quiser usar o painel deles para configurar o direcionamento acesse este link: http://faq.hostgator.com.br/content/55/350/pt-br/como-alterar-o-dns-de-seu-dom%C3%ADnio-contratado-na-hostgator.html

    Os NameServers da DigitalOcean são:

    ns1.digitalocean.com

    ns2.digitalocean.com

    ns3.digitalocean.com

    E a propagação após mudança de NS pode levar de 24 a 48 horas.

    Uma breve explicação de como funciona o DNS:

    DNS é simplesmente um servidor onde os nomes dos domínios serão encontrados/resolvidos por uma busca e transformados em número IP (que você adicionou na tabela DNS relacionando ao nome de domínio).
    Você pode configurar a mesma tabela DNS em vários provedores mas a que irá responder à busca será aquela onde o NameServer aponta.

    No seu caso você não precisa alterar nada na tabela DNS da Hostgator, só precisa adicionar os registros do domínio na DigitalOcean e, na Hostgator, apontar para os NameServers da DO.

    E uma dica para o futuro, se os domínios que você registrar forem diferentes de “.br” (exemplo .com, .net, .org, etc..) use os serviços da Namecheap. Além de ser muito fácil de registrar e gerenciar domínios eles sempre têm promoções, e ainda aceitam Bitcoin.

  • Iori Yagami

    Muuuito Obrigado 🙂 Os meus dominios são .com sempre .com gosto das coisas mais “globais” abrangentes.
    partindo da premissa que ja sabemos que meus dominios são .com (sem o br)mas registrei no brasil na hostgaxxx.com.br. mas como vc ja disse.. poderia usar o painel internacional tambem de qualquer forma.

    1-para apontar os DNS.. tenho q no meu painel da DO(nova empresa) apontar os names server dos meus servidores hostgator(velha empresa).. e não o contrario, inserir os names servers da DO no painel da hostgator, não seria isso?

    2-você me deu os DNS da DO em caso de eu usar a opção registrar names server no botton do painel hostgator. foi isso? registrar names servers seria o que? seria pra eu mudar de empresa que farei as renovações dos registros do meus dominios tambem?

    3-o que seria criar names servers?

    /// esse tema migração é muito bom, pessoas adoram mudanças, ninguem nunca tá satisfeito plenamente, vi muitos videos que nao chegam aos pes dos seus na qualidade com mais de 30 mil views em 1 ano porque dizem. como mudar de hospedagem(no caso econtrei so migração dos arquivo, ha dezenas de formas de fazer isso é essa parte tecnica pra mim é facil), ensine essa troca de dominio na parte “burocratica” que é muito procurado pelo povo.(1 milhao de views no humor é normal, mil views com coisas uteis de aprendizado, é um estouro de sucesso e grande feito) eu ja fiz varias trocas de dominios no passado muito atraz, ja */ ha fui redehost, hostmachine, uol, hostgator, etc.. lembro que nao tinha bate e volta,, eu so pegava os names servers da antiga e informava no referido campo no painel da nova hospedagem, simples assim. daí vc me deu dns da DO pra inserir no painel da HG deu um nó no meu cerebro.(to meio receioso poque sempre joguei essas parte nos peitos dos suportes das hospedagens compartilhadas e baratas que eu contratava, nunca fiz nada no braço como ser um mini-micro-hostgator da vida como podemos ser na DO :p, ou seja, tudo por traz feito no braço, no background) srsr.

    em resumo quero enteder o que seria criar names servers no painel hostgator. pra que ser isso se basicamente pra emigrar de hospedagem eu so preciso informar os names servers da HG na DO.

    na sua opnição não é melhor eu ter dominio e arquivos gurdados na mesma empresa? DO?

  • Iori Yagami

    no painel da DO eu criei um novo RECORD:
    nama A: meudominio.com IP: NUMEROS_MEU_IP-VPS_DIGITALOCEAN
    NS: ns113.hostgator.com.br.
    NS: ns114.hostgator.com.br.
    NS: ns3.digitalocean.com. # deixei como tava

    é tudo que preicos fazer é informar os dados names servers da hostgator aqui nessa area do DO não é isso?

    ===========================
    acho, digo acho, q nada tenho que fazer no /hostgator/painelfinanceiro/domionios clica no icone setinha verde da extrema direito da lista de dominios. editar name servers personalizados.. pois isso nao seria para levar dominios de outras empresas para hospedar na hostgator?

    e ainda no botton da pagina “criar names servers” q até hoje nao sei o que seria! nao seria pra apontar dominios registrados em concorrentes da hostgator para hospeda-los na hostgator??

  • A DigitalOcean não oferece serviços de venda de domínios. Você pode mantê-los na Hostgator mesmo ou, quando for renová-los, migrar os domínios para a Namecheap por exemplo.

    Aqui no Fator Binário eu tenho o domínio registrado na NameCheap apontando para os NS da CloudFlare onde mantenho minha tabela DNS. E na tabela DNS criada na CloudFlare note que não tem registros NS mas todas as entradas apontam para o VPS na DO. Veja só: https://fatorbinario.com/comunidade/topico/cloudflare-configurando-a-tabela-dns/

    No seu caso então você deve proceder da seguinte forma:

    1) Acesse o painel financeiro da Hostgator e selecione um dos domínios na lista, nas opções do domínio marque “Utilizar Nameserver – DNS personalizado”, apague qualquer outro que tenha lá e coloque os 3 NS da DigitalOcean como te disse acima, e como explica neste link: http://faq.hostgator.com.br/content/55/350/pt-br/como-alterar-o-dns-de-seu-dom%C3%ADnio-contratado-na-hostgator.html

    2) Na DigitalOcean você precisa criar uma tabela DNS para cada domínio, quando você adiciona uma nova tabela o sistema automaticamente insere os 3 registros NS da DigitalOcean e mais a entrada “@” que é um alias global do IP, então é só cadastrar os demais como eu explico neste tutorial: https://fatorbinario.com/comunidade/topico/como-configurar-a-tabela-dns-de-um-vps/

    * Note que tanto na Hostgator como na DigitalOcean os NS apontados são da DO.

    * Você não cria NameServers, só precisa apontar para os da DO. Muita gente usa NameServers com o nome do próprio domínio, também chamados de Vanity NameServers, mas eu acho isso desnecessário para a maioria das pessoas.

    * Na Hostgator aponte para os NS da DigitalOcean e crie a tabela DNS daquela maneira que explico no tutorial pra deixar tudo certo.

  • Iori Yagami

    Obrigadaço pela disponibilidade em ajudar 🙂 ja compartilhei e segui vc nas 3 redes sociais q tenho. Seu site tem conteudo de qualidade. Obrigado.

  • Muito bem.
    E se quiser outra dica registre-se na Comunidade. Estou publicando muitos mini-tutoriais (auxiliares) lá.

    Uma maneira bacana de seguir o Fator é “Assinar” os Fórums, tem uma opção pra isso em cada Fórum. Assim quando eu publicar algo você fica sabendo. Clicando na opção Assinar você será notificado somente sobre novos tópicos e não das respostas subsequentes.

    E também tem a opção “Favorito” para os tópicos onde você pode marcar o link e quando precisar novamente estará disponivel no seu painel do perfil. Um exemplo é aquele link com a tabela DNS, favorite ele que estará sempre à mão.

  • Iori Yagami

    Ta tudo lisinho no meu sevidor proprio 🙂 meus dominios num servidor tudo configurado.. dominio FQDN 🙂 testes lindos no intodns e whatsmydns 🙂 seguir e testei seus passos se securança e desempenho.. achei curioso vc criando swap .. fez literalmente uma area de troca.. memoria swap num diretorio! eu sempre usei um mini partição ssrsrsr que lerdeza. um direorio é muito mais pratico.. até pra desativar. valta so eu seguir as 3 linhas finais da sua super tabela de dominios.. porque ainda falta em configuta DKIM, SPF, ta tudo muito lindo aqui 🙂

  • Legal.
    Segue lá sim porque aquilo é essencial para o servidor de email.

  • TG Informática

    Me ajudou muito.
    Obrigado por compartilhar.

  • Muitíssimo obrigado.