Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Como solucionar problemas de memória swap no VPS Linux: Guia Completo

15 min de leitura  ·  Guia técnico

Solucionar problemas de memória swap no VPS Linux envolve identificar, diagnosticar e corrigir questões relacionadas ao espaço de troca virtual que complementa a RAM física. Quando a memória swap apresenta problemas como esgotamento, fragmentação ou uso excessivo, o desempenho do servidor pode ser severamente comprometido, resultando em lentidão, travamentos ou até mesmo falhas completas do sistema.

Pré-requisitos

  • Acesso SSH ao seu VPS Linux com privilégios de root ou sudo
  • Conhecimentos básicos de comandos Linux
  • Terminal ou cliente SSH (PuTTY para Windows, Terminal para macOS/Linux)
  • Distribuição Linux compatível (Ubuntu, CentOS, Debian, etc.)
  • Backup recente dos dados importantes (por precaução)

Entendendo a memória swap no Linux

A memória swap funciona como uma extensão da RAM física do seu servidor VPS. Quando o sistema operacional Linux detecta que a memória RAM está se esgotando, ele move dados menos utilizados para o espaço de swap no disco, liberando RAM para processos mais ativos e críticos. Embora o swap seja essencial para a estabilidade do sistema, seu uso excessivo pode causar degradação significativa de desempenho, já que o acesso ao disco é muito mais lento que o acesso à RAM.

Existem dois tipos principais de swap no Linux:

  • Partição swap: Uma partição dedicada no disco rígido, configurada durante a instalação do sistema
  • Arquivo swap: Um arquivo especial criado no sistema de arquivos existente, mais flexível para ajustes posteriores

Para verificar o status atual da memória swap no seu VPS, execute o comando:

free -h

A saída mostrará algo semelhante a:

              total        used        free      shared  buff/cache   available
Mem:           3.9G        1.2G        1.5G         15M        1.2G        2.5G
Swap:          2.0G        0.5G        1.5G

Para informações mais detalhadas sobre a configuração de swap, use:

swapon --show

Que retornará algo como:

NAME      TYPE      SIZE  USED PRIO
/swapfile file      2G   512M   -2

Diagnosticando problemas comuns de swap

O diagnóstico adequado de problemas de swap é fundamental antes de implementar qualquer solução. Vários sintomas podem indicar problemas relacionados à memória swap no seu VPS Linux. Identificar corretamente esses sinais permite aplicar a solução mais eficaz para o seu caso específico.

Sinais de problemas com swap

  • Desempenho do servidor significativamente reduzido
  • Processos lentos ou travando
  • Mensagens de erro "Out of memory" nos logs do sistema
  • Alto tempo de resposta para aplicações web
  • Swap completamente esgotado
  • Atividade constante de swap (thrashing)

Para monitorar a atividade de swap em tempo real, use o comando:

vmstat 1

Observe as colunas "si" (swap in) e "so" (swap out). Valores consistentemente altos indicam uso excessivo de swap:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 524288 1572864 126976 1228800  12   18    25    32  125  215  5  2 92  1  0
 0  0 524288 1572864 126976 1228800   0    0     0     0  102  198  1  1 98  0  0
 0  0 524288 1572864 126976 1228800   0    0     0     8  105  201  2  1 97  0  0
 2  0 524288 1572352 126976 1228800  64   32    64    32  158  289  8  3 88  1  0

Para verificar quais processos estão consumindo mais memória, use:

ps aux --sort=-%mem | head -10

Solucionando problemas de falta de espaço swap

Quando o espaço de swap é insuficiente para as necessidades do seu VPS, você pode aumentar o tamanho do swap existente ou criar um novo arquivo de swap. Estas soluções ajudam a prevenir falhas por falta de memória e melhoram a estabilidade do sistema quando a RAM física está sob pressão.

Criando um novo arquivo swap

Se você não tem swap configurado ou precisa de mais espaço, siga estes passos para criar um novo arquivo swap:

  1. Verifique o espaço disponível no disco:
df -h
  1. Crie um arquivo swap (substitua 2G pelo tamanho desejado):
sudo fallocate -l 2G /swapfile

Se o comando fallocate não estiver disponível, use dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  1. Configure permissões corretas:
sudo chmod 600 /swapfile
  1. Formate o arquivo como swap:
sudo mkswap /swapfile

Você verá uma saída como:

Setting up swapspace version 1, size = 2 GiB (2147483648 bytes)
no label, UUID=7e1fce71-5b5e-4e2f-9d7a-7d59e15a5d5f
  1. Ative o arquivo swap:
sudo swapon /swapfile
  1. Para tornar o swap permanente após reinicializações, adicione ao /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Aumentando um arquivo swap existente

Se você já tem um arquivo swap, mas precisa aumentá-lo:

  1. Primeiro, desative o swap atual:
sudo swapoff -v /swapfile
  1. Redimensione o arquivo (exemplo para 4GB):
sudo fallocate -l 4G /swapfile

Ou usando dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  1. Reformate e reative o swap:
sudo mkswap /swapfile
sudo swapon /swapfile
  1. Verifique se o novo tamanho está ativo:
free -h

Otimizando o comportamento da memória swap

Ajustar o comportamento da memória swap pode melhorar significativamente o desempenho do seu VPS Linux. O parâmetro swappiness controla a tendência do kernel em mover dados da RAM para o swap. Valores mais baixos priorizam o uso da RAM física, enquanto valores mais altos favorecem o uso do swap.

Ajustando o valor de swappiness

O valor de swappiness varia de 0 a 100. Para servidores VPS, valores entre 10 e 30 geralmente oferecem melhor desempenho:

  1. Verifique o valor atual:
cat /proc/sys/vm/swappiness
  1. Altere temporariamente (até a próxima reinicialização):
sudo sysctl vm.swappiness=10
  1. Para tornar a alteração permanente, edite o arquivo sysctl.conf:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
  1. Aplique as alterações sem reiniciar:
sudo sysctl -p

Configurando a pressão de memória

Além do swappiness, você pode ajustar outros parâmetros relacionados à gestão de memória:

  1. Configure o vfs_cache_pressure (controla a tendência do kernel em recuperar memória de cache de sistema de arquivos):
sudo sysctl vm.vfs_cache_pressure=50

Para tornar permanente:

echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
  1. Ajuste o min_free_kbytes (quantidade mínima de memória livre):
sudo sysctl vm.min_free_kbytes=65536

Para tornar permanente:

echo 'vm.min_free_kbytes=65536' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Corrigindo problemas de desempenho relacionados ao swap

Quando o VPS Linux está sofrendo com problemas de desempenho devido ao uso excessivo de swap, várias estratégias podem ser implementadas para melhorar a situação. O thrashing (quando o sistema passa mais tempo movendo dados entre RAM e swap do que executando processos) é um problema comum que precisa ser resolvido rapidamente.

Identificando e limitando processos com alto consumo de memória

  1. Identifique os processos que consomem mais memória:
ps aux --sort=-%mem | head -10
  1. Use o comando smem para análise detalhada do uso de memória:
sudo apt-get install smem -y  # Para Ubuntu/Debian
sudo smem -tk
  1. Limite a memória de processos específicos usando cgroups:
sudo apt-get install cgroup-tools -y  # Para Ubuntu/Debian
sudo cgcreate -g memory:limitgroup
sudo cgset -r memory.limit_in_bytes=500M limitgroup
sudo cgexec -g memory:limitgroup comando_do_processo

Limpando o cache de swap

Em algumas situações, o Linux mantém dados no swap mesmo quando há RAM disponível. Para forçar o sistema a mover dados do swap de volta para a RAM:

sudo swapoff -a
sudo swapon -a

Atenção: Este processo pode consumir recursos significativos temporariamente. Execute apenas quando o sistema estiver com carga baixa.

Implementando zswap para melhor desempenho

O zswap é um cache de compressão de memória que armazena páginas que seriam movidas para o swap, melhorando o desempenho:

  1. Verifique se o zswap está disponível no seu kernel:
grep -i zswap /boot/config-$(uname -r)
  1. Ative o zswap adicionando parâmetros ao GRUB. Edite /etc/default/grub:
sudo nano /etc/default/grub

Adicione à linha GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20"
  1. Atualize o GRUB e reinicie:
sudo update-grub
sudo reboot

Problemas comuns e como resolver

Sintoma: Sistema extremamente lento com alta atividade de disco

Causa: Thrashing de swap - o sistema está constantemente movendo dados entre RAM e swap.
Solução: Aumente a RAM do seu VPS se possível, reduza o valor de swappiness para 10, e identifique/limite processos que consomem muita memória. Execute sudo swapoff -a && sudo swapon -a para limpar o swap quando o sistema estiver com baixa carga.

Sintoma: Mensagens "Out of memory" nos logs do sistema

Causa: O sistema esgotou tanto a RAM quanto o swap, ativando o OOM Killer.
Solução: Aumente o tamanho do swap seguindo as instruções na seção "Solucionando problemas de falta de espaço swap". Configure o OOM score para proteger processos críticos: echo -500 > /proc/PID/oom_score_adj (substitua PID pelo ID do processo).

Sintoma: Swap não está sendo utilizado mesmo com RAM quase cheia

Causa: Valor de swappiness muito baixo ou swap não está ativado corretamente.
Solução: Verifique se o swap está ativo com swapon --show. Se estiver ativo, ajuste o swappiness para um valor moderado: sudo sysctl vm.swappiness=30. Se não estiver ativo, verifique o arquivo /etc/fstab e reative com sudo swapon -a.

Sintoma: Erros ao criar ou redimensionar arquivo swap

Causa: Espaço insuficiente em disco ou problemas com o sistema de arquivos.
Solução: Verifique o espaço disponível com df -h. Limpe arquivos desnecessários ou logs antigos. Se o problema persistir, verifique a integridade do sistema de arquivos com sudo fsck -f /dev/sdXY (substitua sdXY pela partição correta) após reiniciar o VPS em modo de recuperação.

Sintoma: Swap está cheio mas o sistema continua lento mesmo após otimizações

Causa: Possível fragmentação do swap ou aplicações com vazamento de memória.
Solução: Recrie o arquivo swap seguindo os passos da seção "Aumentando um arquivo swap existente". Identifique aplicações com vazamento de memória usando ps aux --sort=-%mem em intervalos regulares e reinicie ou atualize essas aplicações.

Perguntas frequentes sobre memória swap no VPS Linux

O que é memória swap e por que é importante no Linux?

Memória swap é um espaço no disco que o sistema Linux usa como extensão da RAM quando esta está cheia. É importante porque evita falhas por falta de memória, permitindo que o sistema continue funcionando mesmo quando a RAM física está esgotada, embora com desempenho reduzido.

Quanto de swap devo configurar no meu VPS Linux?

Para VPS com até 2GB de RAM, configure swap igual à quantidade de RAM. Para 2-8GB de RAM, use metade da RAM. Para mais de 8GB, 4GB de swap geralmente é suficiente. Ajuste conforme o uso específico do servidor e aplicações.

Como sei se meu VPS Linux está com problemas de swap?

Verifique com o comando 'free -m' se o swap está sendo muito utilizado ou esgotado. Use 'vmstat 1' para monitorar a atividade de swap (si/so) em tempo real. Alta utilização de swap combinada com lentidão do sistema indica problemas.

O que é swappiness e como ajustá-lo?

Swappiness é um parâmetro do kernel Linux (0-100) que controla a tendência do sistema em usar swap. Valores baixos (10-20) priorizam o uso da RAM, enquanto valores altos favorecem o swap. Ajuste-o com 'sysctl vm.swappiness=valor' para otimizar o desempenho conforme seu caso de uso.

É possível desativar completamente o swap no Linux?

Sim, é possível desativar o swap com o comando 'swapoff -a', mas isso não é recomendado para a maioria dos servidores. Sem swap, aplicações podem ser encerradas abruptamente pelo OOM Killer quando a RAM se esgotar, causando instabilidade no sistema.

Monitoramento contínuo da memória swap

Implementar um sistema de monitoramento contínuo é essencial para detectar problemas de swap antes que afetem o desempenho do seu VPS. Ferramentas de monitoramento permitem identificar tendências de uso de memória e tomar medidas proativas.

Ferramentas de monitoramento recomendadas

  • Htop: Versão aprimorada do top com visualização de uso de memória e swap
sudo apt-get install htop -y  # Para Ubuntu/Debian
htop
  • Glances: Monitor de sistema abrangente com interface web opcional
sudo apt-get install glances -y  # Para Ubuntu/Debian
glances
  • Netdata: Monitoramento em tempo real com dashboard web detalhado
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Após a instalação, acesse o dashboard via navegador: http://IP-DO-SEU-VPS:19999

Configurando alertas para problemas de swap

Configure alertas para ser notificado quando o uso de swap atingir níveis críticos:

  1. Instale o utilitário ssmtp para envio de emails:
sudo apt-get install ssmtp -y  # Para Ubuntu/Debian
  1. Configure o ssmtp editando /etc/ssmtp/ssmtp.conf:
sudo nano /etc/ssmtp/ssmtp.conf

Adicione as configurações do seu servidor SMTP.

  1. Crie um script de monitoramento de swap:
sudo nano /usr/local/bin/monitor-swap.sh

Adicione o seguinte conteúdo:

#!/bin/bash
SWAP_USED=$(free | grep Swap | awk '{print $3/$2 * 100.0}')
THRESHOLD=80

if (( $(echo "$SWAP_USED > $THRESHOLD" | bc -l) )); then
    echo "Alerta: Uso de swap em $SWAP_USED% no servidor $(hostname)" | \
    mail -s "Alerta de Swap - VPS $(hostname)" [email protected]
fi
  1. Torne o script executável e adicione ao crontab:
sudo chmod +x /usr/local/bin/monitor-swap.sh
(crontab -l 2>/dev/null; echo "*/15 * * * * /usr/local/bin/monitor-swap.sh") | crontab -

Conclusão

  • A memória swap é um componente crítico para a estabilidade do seu VPS Linux, funcionando como extensão da RAM física quando necessário.
  • Problemas comuns de swap incluem espaço insuficiente, thrashing e configurações inadequadas, que podem ser resolvidos com as técnicas apresentadas neste guia.
  • Implementar monitoramento contínuo, ajustar parâmetros como swappiness e dimensionar corretamente o espaço de swap são práticas essenciais para manter o desempenho ideal do seu servidor.

Precisa de ajuda com seu servidor VPS Linux?

A AviraHost oferece servidores VPS Linux otimizados com suporte técnico especializado para garantir o máximo desempenho das suas aplicações. Nossa equipe pode ajudar a configurar e otimizar a memória swap do seu servidor.

Conheça nossos planos de Servidor VPS

  • 0 Usuários acharam útil
  • linux, vps, swap, memória, performance, servidor, avirahost
Esta resposta lhe foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...