Swappiness no Linux: o que é, como funciona e exemplos reais em produção

Swappiness no Linux

Beleza, vamos desmistificar swappiness linux sem teoria vaga e com exemplos reais de produção — do tipo que você vê em VPS, Dedicado, WordPress e banco de dados. 🧠💾


O que é swappiness (sem enrolação)

Swappiness define o quão agressivamente o kernel Linux prefere usar swap em vez de RAM.

  • Valor vai de 0 a 100
  • Controla prioridade, não uma regra fixa
  • Não significa “só usar swap quando acabar a RAM”

👉 Em resumo:

Quanto maior o swappiness, mais cedo o Linux joga páginas de memória para o swap.


Valores típicos e o comportamento real

🔴 Swappiness = 60 (padrão da maioria das distros)

O que acontece na prática:

  • Swap começa a ser usada mesmo com RAM livre
  • Kernel tenta manter cache de disco grande
  • Bom para desktops, ruim para servidores

📉 Sintoma comum:

  • RAM ainda disponível
  • Swap em uso
  • Sistema “lento do nada”

🟡 Swappiness = 10 (servidor web clássico)

Comportamento real:

  • Prioriza RAM
  • Só usa swap quando há pressão real de memória
  • Mantém cache suficiente sem exagero

📌 Ideal para:

  • WordPress
  • Apache + Nginx
  • PHP-FPM
  • VPS compartilhada
  • Servidor Dedicado

🧠 Exemplo real:

VPS com 8 GB RAM
Antes: swap usada com 3–4 GB livres
Depois: swap só entra acima de 90% de uso de RAM


🟢 Swappiness = 1 (banco de dados / baixa latência)

Comportamento:

  • Swap é último recurso
  • Menor chance de latência imprevisível
  • Mais risco de OOM se faltar RAM

📌 Usado em:

  • MariaDB / MySQL
  • PostgreSQL
  • Redis
  • Elasticsearch

⚠️ Atenção:
Se o processo estourar a RAM → OOM Killer entra em ação.


⚫ Swappiness = 0 (caso especial)

  • Swap não é usada proativamente
  • Só entra quando não há alternativa
  • Pode ser ignorado em kernels antigos
  • Não resolve falta de RAM

👉 Não é mágico e raramente recomendado hoje.


Exemplo real: WordPress lento com RAM sobrando

Situação

  • VPS: 12 GB RAM
  • Swap: 4 GB
  • Swappiness: 60 (default)
  • MariaDB + PHP-FPM

Sintomas

  • free -h mostra RAM livre
  • vmstat mostra swap ativa
  • Requests com latência alta
  • Load normal, mas site “pesado”

Causa real

O kernel está:

  • Jogando páginas do PHP-FPM para swap
  • Mantendo cache de disco exagerado
  • Criando latência em cada page load

Solução aplicada

sysctl vm.swappiness=10

Resultado:

  • Swap praticamente zerada
  • Latência caiu
  • CPU ficou mais estável
  • Nenhuma outra mudança feita

Swappiness NÃO resolve

❌ Falta real de RAM
❌ Memory leak
❌ PHP-FPM mal dimensionado
❌ MariaDB com buffer pool maior que a RAM
❌ Overselling do provedor

Swappiness só muda prioridade, não cria memória.


Como verificar e alterar

Ver valor atual

cat /proc/sys/vm/swappiness

Alterar temporariamente

sysctl vm.swappiness=10

Alterar permanentemente

echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

Valores recomendados (vida real)

CenárioSwappiness
Desktop60
VPS WordPress10
Servidor web geral5–10
Banco de dados1
Redis / cache1
Sistema com ZRAM5–20

Regra de ouro

Swap deve ser airbag, não motor principal.

Se swap está ativa com RAM livre → swappiness provavelmente está alto demais ou você tem outro gargalo escondido.

FAQ

O que é swappiness no Linux?

Swappiness é um parâmetro do kernel Linux que define o quanto o sistema prioriza o uso de swap em relação à memória RAM, influenciando diretamente a performance.

Qual o melhor valor de swappiness para servidores?

Para servidores, valores entre 5 e 10 são os mais indicados. Bancos de dados e sistemas de baixa latência costumam usar 1.

Swappiness alto deixa o servidor lento?

Sim. Swappiness alto pode fazer o Linux usar swap mesmo com RAM livre, causando latência e sensação de lentidão em aplicações.

Swappiness resolve falta de memória RAM?

Não. Swappiness apenas ajusta a prioridade entre RAM e swap. Se faltar RAM, o problema é dimensionamento ou configuração da aplicação.

Qual swappiness usar em WordPress?

Em servidores WordPress com PHP-FPM e banco de dados local, o valor recomendado é 10, garantindo equilíbrio entre cache e baixa latência.

Swappiness 0 é recomendado?

Não na maioria dos casos. Swappiness 0 pode aumentar o risco de OOM Killer e não impede totalmente o uso de swap.