Categories
Tutoriais Ubuntu

Como criar um arquivo SWAP no Linux

Como criar um arquivo de troca (swap file) no Linux.

Normalmente as pessoas criam e configuram a sua partição swap, ao instalar o seu sistema.
Até a versão 2.6 do kernel, o uso de uma partição separada para swap trazia melhorias sensíveis de performance.
Atualmente, um arquivo de swap tem a mesma performance que uma partição dedicada. Ainda assim, o uso de uma partição separada é o jeito mais organizado e seguro de fazer a paginação.

LEIA MAIS

Você pode regular o uso do arquivo/espaço de troca (swap space) no Linux com a configuração do swapiness — o que pode trazer um ganho sensível no desempenho do seu sistema.
Leia mais aqui.

Por que eu deveria criar um arquivo de swap

Se você não tem um arquivo ou partição swap, é aconselhável criar um, para que o sistema tenha para onde “transbordar” quando tiver chegado a um certo limite de uso da memória RAM — que é uma situação rara para usuários comuns do Linux.


Por favor, leia Perguntas e respostas sobre o SWAP.
Se você já tem um arquivo ou partição, não há razão para criar outro, a não ser que o espaço atual seja muito pequeno ou você tenha feito algum upgrade de memória no seu sistema – ao hibernar, o Linux grava no swap toda a situação atual da sua memória RAM, entre outras coisas.
Houve um tempo em que se recomendava configurar o tamanho do swap como o dobro do tamanho da memória RAM. Isto não é mais necessário. O Linux, nas mãos de um usuário normal, vai usar o swap, predominantemente, só para hibernar o sistema. Portanto, o tamanho de swap deve acompanhar o tamanho da sua memória RAM.
Como criar uma nova partição é um pouco complicado, criar um novo arquivo de swap pode ser uma solução mais viável. Vou mostrar como fazê-lo a seguir.

Como criar um arquivo de swap no Linux

O procedimento descrito abaixo vale pra qualquer distro Linux. O que se requer, aqui, é que você tenha acesso root ao sistema, ou seja, tenha privilégios administrativos.
O procedimento não funciona em sistemas de arquivos BTRFS.
O processo envolve o uso do comando dd para criar o arquivo swap e o comando mkswap para configurar o swap em um arquivo ou dispositivo independente.

Autenticando-se como administrador (root)

Abra um terminal – no Ubuntu, use a combinação de teclas Ctrl + Alt +T. Nos exemplos, vou usar o comando sudo para executar os procedimentos com privilégios administrativos. Mas, se você preferir, pode entrar como superusuário, através do comando su e suprimir o uso do sudo — é sua escolha.

Como criar um arquivo de armazenamento com o dd

O comando dd tem múltiplas funcionalidades. Pode ser usado, inclusive, para medir a velocidade de leitura/escrita de um dispositivo, bem como, criar um pendrive inicializável com Linux.
Neste caso, vou criar um arquivo de armazenamento, a ser usado como swap, com o tamanho de 512 Mb.
Multiplique o tamanho que você deseja em Megabytes por 1024, para obter o valor a ser usado pelo parâmetro count, conforme o exemplo a seguir.
Note que 512 multiplicado por 1024 é igual a 524288 – e é este número que vou usar no meu exemplo:


sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288

[sudo] password for justincase: 
524288+0 registros de entrada
524288+0 registros de saída
536870912 bytes (537 MB) copiados, 18,417 s, 29,2 MB/s
justincase@JustInCase-Solaris-8:~$

O arquivo swap já está criado. Segue, abaixo, uma explicação do que foi feito:

  • if=/dev/zero — Lê o arquivo /dev/zero, um arquivo especial uma vez que provê todos os caracteres null necessários para construir o arquivo swapfile
  • of=/swapfile — cria o arquivo /swapfile e grava nele o conteúdo de /dev/zero
  • bs=1024 — este parâmetro indica que 1024 blocos deverão ser gravados/lidos por vez
  • count=524288 — limita a quantidade de blocos gravados a este número

Como configurar o seu arquivo de swap

O comando, que segue, configura o seu recém criado arquivo swapfile como sendo um arquivo de swap:


sudo mkswap /swapfile

mkswap: /swapfile: permissões inseguras 0644, sugere-se 0600.
Configurando espaço de swap versão 1, tamanho = 500 MiB (524284 bytes)
nenhum rótulo, UUID=9055d446-c93c-41e7-b500-5da7bffff888

Agora, siga a recomendação de segurança, e altere as permissões do arquivo:


chmod 0600 /swapfile

Para que o seu arquivo swap seja ativado na próxima vez em que você ligar a máquina, é necessário indicar isto no arquivo de sistema /etc/fstab. Abra-o e acrescente a seguinte linha, no final:

/swapfile swap swap defaults 0 0

Grave o arquivo e feche o editor.
Após reiniciar o seu sistema o swap já estará funcionando.

Como verificar se o meu swap está ativado ou não

Use o comando free para verificar a situação geral de uso da memória do sistema, o que inclui o uso do swap:


sudo free -mh

Normalmente, a última linha costuma mostrar informações sobre ele.
Outra forma de verificar o status do swap é inquirir o arquivo /proc/meminfo/:


cat /proc/meminfo | grep -i swap

Como desativar e remover o arquivo de swap do meu sistema

Para desativar o arquivo de swap criado aqui, use o comando:


sudo swapoff /swapfile

Agora remova a linha inserida ao final do arquivo /etc/fstab.
Após reiniciar o sistema, pode apagar o arquivo /swapfile:


sudo rm -vf /swapfile

Se você tiver interesse em apenas reduzir o uso do swap, clique aqui, para saber como fazer isto.
[blog_subscription_form]

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

2 replies on “Como criar um arquivo SWAP no Linux”

Amigo eu uso Java e queria direcionar o uso da.memoria pra um arquivo de swap. Tem como fazer isso?

Não precisa rebotar.
Para ativar o swap, basta:
sudo swapon /swapfile

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.