7 min de leitura · Guia técnico
Swap no Linux é um espaço em disco usado como extensão da memória RAM quando esta se esgota. O sistema move dados menos utilizados da RAM para o swap, liberando memória para processos ativos. Esta funcionalidade evita travamentos e permite que aplicações continuem funcionando mesmo com pouca RAM disponível.
Pré-requisitos
- Acesso root ou sudo ao servidor Linux
- Ubuntu 22.04 LTS ou distribuição similar
- Espaço livre em disco para criar arquivo de swap
- Conhecimento básico de comandos Linux
Como verificar o swap atual no sistema
Antes de configurar swap no Linux, verifique se já existe algum espaço de swap ativo no sistema. Use o comando free para visualizar o uso atual de memória e swap:
free -h
O output mostrará informações detalhadas sobre RAM e swap:
total used free shared buff/cache available
Mem: 2.0Gi 1.2Gi 200Mi 50Mi 600Mi 700Mi
Swap: 1.0Gi 100Mi 900Mi
Para listar todos os dispositivos de swap ativos, execute:
swapon --show
Se não houver swap configurado, o comando não retornará nenhuma saída. Você também pode verificar o arquivo /proc/swaps para informações detalhadas sobre partições de swap ativas.
Criando arquivo de swap passo a passo
A criação de um arquivo de swap é o método mais flexível para adicionar espaço de swap ao sistema. Primeiro, determine o tamanho adequado baseado na quantidade de RAM disponível.
Crie um arquivo de swap de 2GB usando o comando dd:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
O comando criará um arquivo chamado swapfile na raiz do sistema:
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 15.2341 s, 141 MB/s
Configure as permissões corretas para segurança:
sudo chmod 600 /swapfile
Formate o arquivo como área de swap:
sudo mkswap /swapfile
O sistema confirmará a criação da área de swap:
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890
Ative o arquivo de swap imediatamente:
sudo swapon /swapfile
Configurando swap permanente no sistema
Para que o swap seja ativado automaticamente durante a inicialização do sistema, adicione uma entrada no arquivo /etc/fstab. Abra o arquivo com um editor de texto:
sudo nano /etc/fstab
Adicione a seguinte linha ao final do arquivo:
/swapfile none swap sw 0 0
Salve o arquivo e verifique se a configuração está correta executando:
sudo mount -a
Se não houver erros, a configuração está válida. O swap será ativado automaticamente nas próximas reinicializações do sistema.
Ajustando o valor de swappiness
O parâmetro swappiness controla com que frequência o sistema usa swap em relação à RAM. O valor padrão é 60, mas para servidores é recomendado usar valores menores para priorizar o uso da RAM.
Verifique o valor atual de swappiness:
cat /proc/sys/vm/swappiness
Para servidores VPS, configure swappiness para 10:
sudo sysctl vm.swappiness=10
Para tornar a alteração permanente, edite o arquivo /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
Adicione ou modifique a linha:
vm.swappiness=10
Aplique as configurações sem reiniciar:
sudo sysctl -p
Monitorando o uso de swap em tempo real
O monitoramento contínuo do swap ajuda a identificar problemas de performance e necessidade de ajustes. Use o comando htop para visualização em tempo real:
htop
Para monitoramento via linha de comando, use watch combinado com free:
watch -n 2 free -h
Este comando atualizará as informações de memória a cada 2 segundos. Para verificar quais processos estão usando mais swap:
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n
O comando listará todos os processos ordenados pelo uso de swap, facilitando a identificação de aplicações que consomem mais recursos.
Problemas comuns e como resolver
Sistema lento após ativar swap
Causa: Valor de swappiness muito alto fazendo o sistema usar swap desnecessariamente.
Solução: Reduza o swappiness para 10 ou 20 usando sudo sysctl vm.swappiness=10 e torne a alteração permanente no arquivo /etc/sysctl.conf.
Erro "swapon: /swapfile: insecure permissions"
Causa: Permissões incorretas no arquivo de swap permitindo acesso de outros usuários.
Solução: Corrija as permissões com sudo chmod 600 /swapfile e reative o swap com sudo swapon /swapfile.
Swap não ativa automaticamente após reinicialização
Causa: Entrada incorreta ou ausente no arquivo /etc/fstab.
Solução: Verifique se a linha /swapfile none swap sw 0 0 está presente no /etc/fstab e teste com sudo mount -a.
Disco cheio após criar arquivo de swap
Causa: Arquivo de swap muito grande para o espaço disponível em disco.
Solução: Remova o arquivo com sudo swapoff /swapfile && sudo rm /swapfile e crie um arquivo menor adequado ao espaço disponível.
Perguntas frequentes sobre swap no Linux
O que acontece se eu não tiver swap configurado no Linux?
Sem swap, quando a RAM física esgotar, o sistema pode matar processos automaticamente através do OOM Killer para liberar memória. Isso pode causar travamentos e perda de dados em aplicações críticas.
Qual o tamanho ideal de swap para meu servidor VPS?
Para VPS com até 2GB de RAM, use swap igual ao dobro da RAM. Entre 2-8GB de RAM, use swap igual à quantidade de RAM. Acima de 8GB, 4-8GB de swap geralmente são suficientes.
Swap em SSD prejudica a performance do servidor?
Swap em SSD tem impacto menor na performance comparado a discos tradicionais, mas ainda é mais lento que RAM. Configure swappiness baixo (10-20) para usar swap apenas quando necessário.
Como verificar se o swap está sendo usado no meu servidor?
Use o comando 'free -h' para ver uso atual de swap ou 'swapon --show' para listar dispositivos de swap ativos. O comando 'htop' também mostra uso de swap em tempo real.
Posso adicionar mais swap sem reiniciar o servidor?
Sim, você pode criar um arquivo de swap adicional usando 'dd' e 'mkswap', depois ativá-lo com 'swapon'. O swap será ativado imediatamente sem necessidade de reinicialização.
Conclusão
- Configure swap adequado ao tamanho da RAM do seu servidor para evitar travamentos por falta de memória
- Ajuste o swappiness para valores baixos (10-20) em servidores para priorizar o uso da RAM
- Monitore regularmente o uso de swap para identificar gargalos de performance e necessidade de mais RAM
Precisa de ajuda com configuração de servidor VPS?
Nossa equipe especializada pode auxiliar na configuração otimizada de swap e outros aspectos críticos do seu servidor Linux. Oferecemos suporte técnico completo para maximizar a performance do seu VPS.