Servidores pequenos ficam sem memória no pior momento: um apt upgrade, uma build Docker, o backup da madrugada. Sem swap, o OOM killer do kernel escolhe um processo e o encerra, muitas vezes o seu banco de dados. Um arquivo de swap é um cinto de segurança barato que dá uma saída a esses picos. São cinco comandos.
1. Veja o que você tem
swapon --show
free -h
Se swapon --show não mostra nada, ainda não há swap.
2. Crie o arquivo de swap
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
O chmod 600 importa: o swap pode conter pedaços de qualquer coisa que esteja na memória, inclusive segredos, então só o root deve poder lê-lo. Se o fallocate falhar com «operation not supported», use dd:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Torne-o permanente
Sem esta etapa, o swap some na reinicialização:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. Ajuste a swappiness
Peça ao kernel para preferir a RAM e usar o swap principalmente sob pressão:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. Verifique
swapon --show
free -h
Você deve ver um dispositivo de swap de 2 GB, e cat /proc/sys/vm/swappiness deve mostrar 10.
De que tamanho?
- Servidor com 1–2 GB de RAM: 1–2 GB de swap.
- 4 GB ou mais: 1–2 GB continuam bastando como rede de segurança.
Não dimensione o swap como «o dobro da RAM». Num servidor, o swap serve para absorver picos curtos, não para rodar cargas que não cabem na memória.
Quando o swap não é a resposta
Observe-o por alguns dias:
vmstat 5
As colunas si e so mostram as páginas que entram e saem do swap por segundo. Atividade ocasional é normal. Valores diferentes de zero o tempo todo significam que falta memória ao servidor e tudo está esperando o disco. Nesse ponto a solução é mais RAM: veja quanta RAM um VPS precisa. Na EQVPS você pode subir de plano sem reinstalar; os seus dados continuam onde estão.
Comentários
Nenhum comentário ainda. Seja o primeiro.