Como adicionar um arquivo de swap no Ubuntu
Você já sabe a importância de utilizar swap no Ubuntu, veja aqui os comandos e o passo a passo para configurar.
Pré-requisitos: Conhecimentos básicos de Linux, sistemas operacionais. Além disso, é necessário entender o é swap.
TL;DR ↪ Se você precisar apenas dos comandos, clique aqui para rolar a página direto para o resumo TL;DR!
📖 Índice
Me lembro de quando eu ainda estava começando com Linux lá o que já tem bem uns 20 anos. Eu estava estudando para a LPI101 (que até mudou de nome) e eu sempre lia que era muito importante deixar um swap configurado logo depois de uma nova instalação de Linux.
Embora seja algo simples e que eu já fiz várias vezes, não é uma coisa que faço todo dia. Em casos como esse, mesmo eu entendendo todo o conceito, eu nem sempre gravo de cabeça todos os comandos.
De forma simplificada, o swap é uma area de disco para ser utilizada pelo Kernel em casos que a memória RAM física está cheia.
Antigamente era muito comum, durante a instalação do Linux, criar uma partição exclusiva para o swap. Entretanto, nas versões mais modernas do Kernel, temos um resultado bem proximo utilizando um arquivo de swap ao invés de um partição ou de um outro disco.
Além disso, atualmente é muito comum contratarmos instancias na nuvem, imagens prontas e sistemas virtualizados, o que torna o gerenciamento de discos e partições uma coisa mais difícil e em alguns casos até indisponível.
Como definir o tamanho do swap?
Uma boa prática que eu aprendi e que atende a maioria dos casos é sempre criar o swap com o dobro do tamanho da quantidade de memória RAM. Ou seja, se você tem 1GB de memória RAM, é uma boa prática criar um swap de 2GB.
Entretanto, essa métrica faz mais sentido para maquinas com pouca memória. É contra-prudente você considerar um swap de 256GB para uma máquina com 128GB de RAM.
Sendo assim, utilize a seguinte métrica que vai atender a maioria de casos de uso gerais. Eu montei essa tabela com dados de um artigo no opensource.com.
Memória RAM | Tamanho SWAP |
---|---|
até 2GB | 2x RAM |
2GB até 8GB | 1x RAM |
8GB até 64GB | 0.5x RAM |
mais que 64GB | depende |
Nos exemplos que vou utilizo abaixo, eu estou considerando um Ubuntu 20.04 em uma instancia na DigitalOcean com 1GB de RAM. Sendo assim, estou criando um swap de 2GB.
Verificar se já existe swap configurado
A maneira mais fácil de você verificar se já existe algum swap configurado no seu ambiente é utilizar o comando free -m
. Se tiver swap configurado ele sairá discriminado conforme abaixo:
Outra maneira de verificar se já existe swap configurado é executando o comando swapon --show
ou swapon -s
. Se tiver swap configurado ele será listado conforme abaixo:
Como ativar o swap no Ubuntu
Antes de começar tenha em mente que executaremos o seguintes fluxo:
↳ Criar arquivo para swap → Ajustar permissões → Ativar swap → Configurar montagem
Segue o passo a passo completo com todos os comandos abaixo.
Criar arquivo para swap
Antes de iniciar, você precisa de um arquivo para onde o swap será direcionado. Você precisa criar um arquivo vazio de um tamanho já pre-definido para ser utilizado como swap. A forma mais simples é usando o comando dd
.
No comando acima, estamos criando um arquivo /swapfile
com 2GB de tamanho. Basicamente estamos gravando 2048 vezes (count=2048
) um bloco com o tamanho de 1MB (bs=1M
) de caracteres nulos (if=/dev/zero
), o que resulta em um arquivo de 2048MB ou 2GB de tamanho.
Ajustar permissões no arquivo de swap
Após ter o arquivo criado, você precisa ajustar as permissões. Embora esse arquivo terá apenas fragmentos de informações relevantes apenas para o kernel, o ideal é que, por segurança, apenas o usuário root tenha acesso a esse arquivo.
Como ativar o swap no Ubuntu
Antes de efetivamente ativar o swap, você precisa transformar o arquivo que você criou (/swapfile
) em um formato reconhecido pelo Linux como swap. Para isso, utilize o comando abaixo:
Em seguida, ative o swap no Linux para o arquivo criado. Para isso, utilize o comando abaixo:
Prontinho, o seu Ubuntu já está com o swap. Você pode verificar se deu certo utilizando os comandos free -m
ou o swapon -s
que falei lá no começo do artigo.
Configurar montagem automática do swap
O passo anterior, de ativar o swap vale apenas para a execução atual do Linux. Caso você reinicie o sistema, você precisa ativar o swap novamente. É mais conveniente deixar o swap já montando automaticamente. É muito simples e basta adicionar o ponto de montagem no seu fstab
conforme o procedimento abaixo:
Em seguida, adicione na última linha do arquivo /etc/fstab
a seguinte informação:
Prontinho, agora é só reiniciar para validar se deu tudo certo!
Como desativar o swap no Ubuntu
Caso você precise por algum motivo desativar o swap, seja para adicionar swap maior, ou trocar local para um outro disco, você pode fazer utilizando o comando abaixo:
Em seguida, você pode validar se deu tudo certo utilizando algum dos comandos que falei acima, por exemplo o free -m
ou o swapon -s
.
TL;DR | Resumo
# Criar um arquivo de swap de 2GB
dd if=/dev/zero of=/swapfile bs=1M count=2048
# Ajustar permissões do arquivo
sudo chmod 600 /swapfile
# Transformar o arquivo no tipo swap
sudo mkswap /swapfile
# Ativar o swap no sistema
sudo swapon /swapfile
# Verificar se deu tudo certo
free -m
swapon -s
#Desativar o swap no sistema
sudo swapoff /swapfile
Espero que essa dica tenha sido útil, valeu!