Aqui vai uma explicação clara, prática e técnica sobre swap, zram e zswap, com foco em quando usar cada um em servidores Linux (VPS, dedicado e cloud).
O que é Swap (tradicional)
Como funciona
- Usa disco (SSD ou HDD) como extensão da RAM
- Pode ser um arquivo ou partição
- O kernel move páginas de memória pouco usadas para o disco
Vantagens
- Simples e estável
- Evita OOM Killer
- Funciona em qualquer sistema Linux
- Essencial para workloads previsíveis
Desvantagens
- Muito mais lento que RAM
- Pode causar I/O wait alto
- Em SSDs baratos, pode reduzir a vida útil
Quando usar swap
✅ Servidores com SSD NVMe
✅ VPS de produção
✅ Bancos de dados (com swappiness bem ajustado)
✅ Quando estabilidade > performance absoluta
👉 Recomendado em 99% dos servidores, mesmo que pequeno
👉 Clique aqui para ver Qual deve ser o tamanho da sua partição de swap
Ativando Swap Tradicional (Arquivo de Swap)
Hoje em dia, o uso de um Swap File é preferível a uma partição fixa, pois é mais fácil de redimensionar.
# 1. Cria um arquivo de 4GB (ajuste o count conforme necessário) sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # 2. Define as permissões corretas (Segurança: apenas o root lê) sudo chmod 600 /swapfile # 3. Formata o arquivo como área de swap sudo mkswap /swapfile # 4. Ativa o arquivo sudo swapon /swapfile
Para tornar permanente: Adicione a linha
/swapfile none swap sw 0 0ao arquivo/etc/fstab.
O que é ZRAM
Como funciona
- Cria um dispositivo de swap comprimido na RAM
- Os dados nunca vão para o disco
- Usa CPU para compressão (LZO, LZ4, ZSTD)
Vantagens
- Muito mais rápido que swap em disco
- Excelente para sistemas com pouca RAM
- Reduz drasticamente I/O
- Ideal para VPS low-cost
Desvantagens
- Consome CPU
- Não substitui swap em disco
- Pode causar pressão de memória se mal dimensionado
Quando usar zram
✅ VPS com 1–4 GB de RAM
✅ Servidores sem SSD rápido
✅ Ambientes com alta pressão de memória
✅ Containers e VMs leves
👉 Ótimo para VPS baratos e servidores pequenos
Ativando ZRAM (Otimizado)
A forma mais fácil e recomendada de gerenciar ZRAM é através do utilitário zram-generator (padrão no Fedora) ou zram-tools.
Exemplo no Ubuntu/Debian:
# 1. Instala o utilitário sudo apt update && sudo apt install zram-config # 2. O serviço inicia automaticamente. Para verificar: zramctl
Exemplo via script manual (Configuração de 2GB):
# Carrega o módulo do kernel sudo modprobe zram # Define o algoritmo de compressão (zstd é o melhor equilíbrio) echo zstd | sudo tee /sys/block/zram0/comp_algorithm # Define o tamanho (ex: 2GB) echo 2G | sudo tee /sys/block/zram0/disksize # Ativa sudo mkswap /dev/zram0 sudo swapon /dev/zram0 -p 100
Nota: A prioridade -p 100 garante que o sistema use a ZRAM antes de tocar no disco.
Exemplo no Almalinux 8 ou 9
No AlmaLinux (que é baseado no RHEL), a ativação do ZRAM é feita de forma muito eficiente através do zram-generator. Diferente do Ubuntu, o ecossistema RHEL prefere usar geradores de unidades do Systemd para criar esses dispositivos sob demanda.
Aqui está o passo a passo técnico para configurar no AlmaLinux 8 ou 9:
1. Instalação das Ferramentas
Primeiro, precisamos instalar o gerador que cria o dispositivo ZRAM e as ferramentas de compressão.
Bash
# Instale o EPEL (caso não tenha) e o zram-generator sudo dnf install epel-release -y sudo dnf install zram-generator zram-generator-defaults -y
2. Configuração do Dispositivo
O ZRAM no AlmaLinux é configurado através de um arquivo de texto. Vamos criar o arquivo de configuração:
Bash
sudo nano /etc/systemd/zram-generator.conf
Cole o seguinte conteúdo (exemplo otimizado para a maioria dos casos):
[zram0] # Define o tamanho da ZRAM como metade da RAM física (máximo de 4GB) zram-size = min(ram / 2, 4096) # Algoritmo de compressão de alta performance compression-algorithm = zstd # Prioridade maior que a swap de disco (importante!) swap-priority = 100 # Ponto de montagem para logs/cache (opcional, aqui focado em swap) fs-type = swap
Por que usar zstd?
O algoritmo zstd oferece a melhor taxa de compressão com o menor impacto de CPU comparado ao antigo lzo.
3. Aplicando as Mudanças
Para que o Systemd reconheça o novo gerador sem precisar reiniciar o servidor:
# Recarrega as unidades do systemd sudo systemctl daemon-reload # Inicia o dispositivo ZRAM sudo systemctl start /dev/zram0
4. Verificação Real
Para confirmar que o AlmaLinux está comprimindo sua RAM, use o comando zramctl ou swapon:
# Ver detalhes técnicos de compressão zramctl # Ver a prioridade em relação ao disco swapon --show
O que é ZSWAP
Como funciona
- Camada antes do swap tradicional
- Comprime páginas antes de gravar no disco
- Usa RAM como cache comprimido
- Se encher, envia para o swap normal
Vantagens
- Reduz I/O em disco
- Transparente (não cria novo swap)
- Melhor que swap puro
- Menor consumo de CPU que zram
Desvantagens
- Precisa de swap em disco
- Configuração via kernel parameters
- Menos eficiente que zram em sistemas muito pequenos
Quando usar zswap
✅ Servidores com swap em SSD
✅ Produção com alta carga
✅ Bancos de dados e aplicações PHP
✅ Quando você quer otimizar swap sem mudar arquitetura
👉 Excelente para produção estável
Ativando ZSWAP
O ZSWAP já está presente no kernel, ele apenas precisa ser “ligado” via parâmetros de inicialização, pois ele atua como um cache para uma swap existente no disco.
Passos Reais:
- Edite o GRUB:
sudo nano /etc/default/grub - Adicione os parâmetros na linha
GRUB_CMDLINE_LINUX_DEFAULT:zswap.enabled=1 zswap.compressor=zstd zswap.max_pool_percent=25max_pool_percent=25: Define que o ZSWAP pode ocupar até 25% da sua RAM total.
- Atualize o GRUB e reinicie:
sudo update-grub sudo reboot - Verifique se está funcionando:
grep -r . /sys/module/zswap/parameters/
Dica de Ouro: “Swappiness”
Independente da escolha, você pode controlar quão “agressivo” o kernel é ao mover dados para a swap alterando o valor de swappiness (0 a 100):
sudo sysctl vm.swappiness=10(Recomendado para SSDs e ZSWAP – evita swap precoce).sudo sysctl vm.swappiness=100(Recomendado para ZRAM – prioriza a compressão máxima).
Edite o arquivo /etc/sysctl.conf e insira vm.swappiness=**utilize o valor desejado conforme acima**. Salve o arquivo e aplique as alterações. sysctl -p
Comparação rápida
| Tecnologia | Usa Disco | Usa RAM | Compressão | Melhor uso |
|---|---|---|---|---|
| Swap | ✅ | ❌ | ❌ | Produção padrão |
| ZRAM | ❌ | ✅ | ✅ | VPS pequenos |
| ZSWAP | ✅ | ✅ | ✅ | Produção otimizada |
Qual usar em cada cenário
VPS pequeno (1–2 GB RAM)
✔ ZRAM + swap pequeno (opcional)
✔ Swappiness alto (60–100)
VPS médio (4–8 GB RAM)
✔ Swap em SSD + zswap
✔ Swappiness moderado (10–30)
Servidor dedicado / produção
✔ Swap em NVMe + zswap
✔ Swappiness baixo (5–10)
WordPress / PHP-FPM / MariaDB
✔ Swap sempre presente
✔ Preferir zswap
❌ Evitar zram em cargas altas
Erro comum (importante)
❌ Achar que zram ou zswap substituem RAM
❌ Rodar servidor sem swap
❌ Usar swap em HDD lento para produção
Swap não é performance, é segurança.
Recomendação prática (resumo)
- Sempre tenha swap
- ZRAM → VPS pequeno e barato
- ZSWAP → produção moderna
- Swap puro → melhor que nada
Abaixo está a configuração ideal de swap, zram e zswap por tamanho de RAM, pensada para Linux em produção (VPS, cloud e dedicado) e já otimizada para SEO.
Configuração ideal de swap, ZRAM e ZSWAP por tamanho de RAM
Servidores com até 1 GB de RAM
Cenário: VPS muito pequeno, alto risco de OOM Killer.
Configuração recomendada
- ZRAM: 50–75% da RAM
- Swap em disco: 512 MB–1 GB (se houver SSD)
- ZSWAP: ❌ não recomendado
- Swappiness:
80–100
Justificativa
ZRAM reduz drasticamente I/O e evita travamentos em VPS limitados. ZSWAP consome RAM extra e não compensa.
Servidores com 2 GB de RAM
Cenário: VPS básico para sites leves e serviços pequenos.
Configuração recomendada
- ZRAM: 25–50% da RAM
- Swap em SSD: 1–2 GB
- ZSWAP: ❌ opcional (geralmente desnecessário)
- Swappiness:
60–80
Servidores com 4 GB de RAM
Cenário: WordPress, PHP-FPM, pequenos bancos de dados.
Configuração recomendada
- Swap em SSD: 2–4 GB
- ZSWAP: ✅ ativado
- ZRAM: ❌ não recomendado
- Swappiness:
20–40
Justificativa
ZSWAP reduz escrita em disco e melhora latência sem pressionar CPU.
Servidores com 8 GB de RAM
Cenário: Produção média, múltiplos sites ou containers.
Configuração recomendada
- Swap em SSD/NVMe: 4–8 GB
- ZSWAP: ✅ ativado
- ZRAM: ❌ evitar
- Swappiness:
10–20
Servidores com 16 GB de RAM
Cenário: Bancos de dados, aplicações críticas, alta estabilidade.
Configuração recomendada
- Swap em NVMe: 4–8 GB
- ZSWAP: ✅ ativado
- ZRAM: ❌ desnecessário
- Swappiness:
5–10
Servidores com 32 GB ou mais
Cenário: Bancos de dados grandes, clusters, produção pesada.
Configuração recomendada
- Swap: 8–16 GB
- ZSWAP: opcional (avaliar caso a caso)
- Swappiness:
1–5
Observação
Em ambientes bem dimensionados, swap vira seguro contra picos, não recurso ativo.
Tabela resumo
| RAM | Swap | ZRAM | ZSWAP | Swappiness |
|---|---|---|---|---|
| ≤1 GB | 512 MB–1 GB | 50–75% | ❌ | 80–100 |
| 2 GB | 1–2 GB | 25–50% | ❌ | 60–80 |
| 4 GB | 2–4 GB | ❌ | ✅ | 20–40 |
| 8 GB | 4–8 GB | ❌ | ✅ | 10–20 |
| 16 GB | 4–8 GB | ❌ | ✅ | 5–10 |
| 32 GB+ | 8–16 GB | ❌ | ⚠️ | 1–5 |
Erros comuns
❌ Usar ZRAM em servidor grande de produção
❌ Rodar servidor sem swap
❌ Swappiness alto em banco de dados
❌ Swap em HDD lento
Conclusão
A configuração ideal de swap no Linux depende do tamanho da RAM, tipo de workload e armazenamento.
Para VPS pequenos, ZRAM salva o sistema.
Para produção moderna, ZSWAP + swap em SSD/NVMe é o melhor equilíbrio entre performance e estabilidade.
Clique aqui e consulte nossos planos de Gerenciamento de Servidor
