Swap Memory na VPS Linux: como criar e evitar travamentos com pouca RAM

Tempo de leitura: 4 minutos

Um processo pesado demais, um pico de acesso inesperado, um script que vaza memória aos poucos — qualquer um desses cenários pode fazer uma VPS ficar sem RAM disponível. Quando isso acontece sem nenhuma rede de segurança, o sistema começa a encerrar processos à força (o chamado OOM killer) para não travar completamente, e nem sempre escolhe o processo certo para matar. A swap memory na VPS Linux é essa rede de segurança: um espaço em disco que o sistema usa como memória de emergência quando a RAM se esgota.

Este guia explica o que é swap, como verificar se a sua VPS já tem uma configurada e como criar um arquivo de swap do zero.

O que é memória swap e quando ela ajuda

Swap é um espaço reservado em disco que o Linux usa como extensão da memória RAM. Quando a RAM real fica cheia, o sistema move para o disco os dados menos usados no momento, liberando espaço para o que está em uso ativo. Disco é muito mais lento que RAM, então swap não é um substituto de memória de verdade — é um amortecedor. Ele evita que o servidor trave ou mate processos abruptamente diante de um pico pontual, dando tempo para a situação se normalizar ou para você agir.

Faz sentido especialmente em VPS com pouca RAM (1 GB ou 2 GB) rodando aplicações que ocasionalmente picam de uso — um container Docker subindo, um processo de backup, um comando de build. Em servidores com bastante RAM sobrando, o ganho é menor, mas ainda vale como proteção contra o inesperado.

Como verificar se sua VPS já tem swap

Antes de criar uma, confira se já existe:

free -h

Se a linha Swap mostrar 0B em todas as colunas, não existe swap ativa. Outra forma de conferir, mais direta:

swapon --show

Se o comando não devolver nada, o mesmo diagnóstico: sem swap configurada.

Como criar um arquivo de swap

O caminho mais simples é criar um arquivo dedicado (em vez de uma partição separada, que exigiria reparticionar o disco). O exemplo abaixo cria 2 GB de swap — ajuste o tamanho conforme a seção seguinte:

sudo fallocate -l 2G /swapfile

Se o fallocate não estiver disponível na sua distribuição, o comando dd faz o mesmo, só que mais devagar:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

Depois de criado o arquivo, restrinja a permissão (só o root deve poder ler), formate como swap e ative:

sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Confirme que ativou com free -h de novo. Para a swap sobreviver a um reinício do servidor, adicione a linha abaixo no final do arquivo /etc/fstab:

/swapfile none swap sw 0 0

Sem essa linha, a swap criada some no próximo reboot e é preciso repetir o processo.

Qual tamanho de swap faz sentido

Não existe uma regra única, mas uma referência prática: para servidores com até 2 GB de RAM, uma swap do mesmo tamanho da RAM (ou até o dobro) costuma fazer sentido. Para servidores com mais RAM (8 GB ou mais), uma swap menor — algo entre 1 GB e 4 GB — já cobre picos ocasionais sem ocupar espaço de disco à toa.

Também vale ajustar o swappiness, o parâmetro que controla o quão agressivo o Linux é para usar swap mesmo com RAM ainda disponível. O padrão de muitas distribuições (60) tende a usar swap cedo demais em um servidor; baixar para algo entre 10 e 20 faz o sistema preferir a RAM e só recorrer à swap quando for realmente necessário:

sudo sysctl vm.swappiness=10

Para manter esse valor depois de um reinício, adicione vm.swappiness=10 no arquivo /etc/sysctl.conf.

Swap não substitui upgrade de RAM

Swap é uma rede de segurança contra picos pontuais, não uma solução para uso de memória constantemente no limite. Se o free -h mostra a swap sendo usada o tempo todo, e não só em momentos isolados, isso é sinal de que a RAM contratada já não é suficiente para a carga real do servidor — nesse caso, o caminho é mesmo aumentar a RAM, e não depender de disco (bem mais lento) para rodar a aplicação no dia a dia. Veja como fazer isso em como fazer upgrade ou downgrade do seu servidor VPS na Rubfy.

O comportamento da swap segue o padrão descrito na documentação oficial do kernel Linux, então funciona da mesma forma em qualquer distribuição rodando numa VPS.