TutoriaisUbuntu

Como trabalhar com “SWAP FILES” no Ubuntu

Há algumas releases  o Ubuntu abandonou o sistema de SWAP via partições para usar SWAP via arquivo, isso permite uma maior maleabilidade sem precisar ficar alterando o particionamento do seu sistema e hoje você vai aprender a manipular o novo formato de SWAP.

Antes de começarmos o tutorial em si, acho conveniente falarmos um pouco mais sobre SWAP, para isso recomendo a leitura de um artigo já antigo aqui do blog, mas ainda válido, é só clicar aqui, dar uma lida e depois voltar pra cá! 😉

Para sintetizar um conhecimento básico, SWAP é um termo usado para referenciar o mecanismo de “troca” que existe entre o armazenamento do  seu computador e a memória RAM. Usar SWAP pode ser útil em vário cenários e tudo depende de como você usa o computador.

Quando usar SWAP?

SWAP só será útil se você é tipo de usuário que costuma lotar a sua memória RAM utilizando aplicações pesadas, que por si só, ocupam uma boa fatia da sua RAM. Nominadamente eu poderia comentar sobre editores de vídeo, pessoas que usam muitas máquinas virtuais e assim por diante.

A SWAP também pode ser útil se você é do tipo que gosta de hibernar o seu computador, assim os dados que estavam na memória RAM podem ir para a SWAP temporariamente. Muita gente que reclamou sobre “meu Linux não volta da hibernação”, provavelmente não estava usando a SWAP corretamente.

Quanto usar de SWAP?

Em todos esses anos, nessa indústria vital, eu nunca consegui encontrar uma discussão sobre isso com 100% de consenso, de modo que eu realmente não espero conseguir isso com este artigo, mas podemos tentar usar o bom senso.

Posso falar pela minha experiência, já usei computadores com muita SWAP, pouca SWAP, nenhuma SWAP e você pode ter boas experiências em todos os casos.

Quando você tem pouca memória RAM, a SWAP pode ser uma amiga muito interessante, especialmente no caso de você ter um SSD, que por definição, tende a ser mais veloz que um HD tradicional. 

Mesmo que você use um pouco mais o SSD do que usaria caso a SWAP não estivesse presente, o impacto na vida útil dele deverá ser pouco relevante, tanto que as distros (como o Ubuntu) agora estão colocando a SWAP dentro de um arquivo, independente do dispositivo de armazenamento que você use

Vamos ficar hipotéticos aqui para você ter uma noção: Se eu tivesse um computador com 4GB de RAM e usasse ele para navegar na internet, trabalhar com documentos e planilhas e editar imagens (ou seja, fazer um blog como este), colocaria 2GB de SWAP. Se eu utilizasse esse mesmo computador para edição de vídeo também, colocaria ao menos 4GB de SWAP.

Atualmente eu trabalho com uma estação de edição com 16GB de RAM e trabalho com 2GB de SWAP que raramente são utilizados.

Então, tudo depende do caso. 

Você hiberna o seu computador? Então a SWAP deve ter espaço suficiente para comportar o seu load de RAM atual. Se você for hibernar um computador que está rodando com 12GB de RAM utilizada, pode ser interessante ter uma SWAP de igual proporção ao menos, ou, claro… fechar umas aplicações antes de hibernar o computador, afinal, quanto mais SWAP você colocar, menos espaço você terá no seu disco para armazenamento. A “escolha de Sofia” é sua, analise o que será mais importante para você.

Da mesma forma, caso você use um computador de 4GB para tarefas básicas, como navegação na internet por exemplo, me arrisco a dizer que usar o sistema sem SWAP não vai te impactar tanto, desde que você não hiberne o computador. Mais uma vez, depende o seu perfil de uso. 

Geralmente as distros tentam “chutar” um valor que deve atender a maior parte das pessoas, o Ubuntu 18.10 Cosmic (Development Branch) por exemplo, adicionou um arquivo SWAP de 2GB em uma instalação que possuía 4GB de RAM físicos no meu último teste.

Para você ter uma ideia, eu estou com “muita coisa” aberta agora no Linux Mint, incluindo uma máquina virtual, Telegram, Dropbox, Chrome com 5 abas abertas, Spotify, etc, etc. E ainda assim a SWAP nem sequer está ativa nesta máquina com 16GB de RAM:

Configuração de SWAP

E por último, vale considerar também a configuração de “swapiness“, que faz referência ao percentual de memória ocupada que dispara o gatilho para o uso da SWAP.

Trabalhando com SWAP Files

Particularmente eu achei interessante a mudança, ainda que ter uma memória SWAP em uma partição também possa ser útil em algumas aplicações. Um caso simples de exemplificar é a utilização de múltiplas distros Linux no mesmo computador que podem compartilhar a mesma SWAP, com SWAPFILES isso não é possível, você gasta mais armazenamento para ter o mesmo efeito.

É claro que existem pontos positivos, um deles, talvez o principal, é a maior facilidade para manipular o arquivo de SWAP, afinal, ele é um arquivo como qualquer outro, permitindo que você o apague, crie, e altere para o tamanho que você necessitar sem precisar alterar as partições, que é sempre uma operação mais delicada.

Configuração de SWAPFILES

Você encontrará o arquivo “swapfile” dentro da raiz do seu sistema, no caso o Ubuntu (tem de se observar se o seu sistema usa SWAPFILES). Observando as propriedades dele você observará que ele tem o tamanho da SWAP exibida, por exemplo, no seu “monitor do sistema”.

Vamos fazer um exercício aqui de apagar este arquivo e criar um novo com um tamanho diferente, assim você aprenderá todo o processo e poderá usá-lo conforme a conveniência.

Vamos o terminalzinho, o seu amiguinho

O primeiro passo é desativar a SWAP, tenha certeza de que a sua memória SWAP não contém arquivos, ou seja, é melhor fazer o procedimento sem outras aplicações abertas. O procedimento à seguir também considera “swapfile” como o nome do arquivo de swap, que pode ser qualquer outro, então procure observar. 

Primeiro vamos desligar o SWAP neste arquivo:

sudo swapoff /swapfile

Agora que ele não está mais em uso, seu sistema está sem SWAP e ele é apenas “mais um arquivo”, que você pode remover sem problemas assim:

sudo rm /swapfile 

Agora podemos criar um novo arquivo com o tamanho que quisermos para usar como SWAP, a diferença é que você não pode simplesmente criar um arquivo qualquer, ele precisa se um arquivo com espaço pré-alocado, afinal, ele precisa ter o tamanho da SWAP que você quer.

Acho que a forma mais fácil de criar um arquivo com essas propriedades é usando o utilitário “fallocate”, desse jeito:

sudo fallocate -l 5G /swapfile 

sudo: Para rodar o comando com privilégios elevados.

fallocate: Nome do utilitário que vamos usar para fazer a modificação, para mais informações consulte “man 1 fallocate”.

l: A letra “L” minúscula é um parâmetro que ser para especificar o tamanho do arquivo que queremos criar.

5G: Este aqui é tamanho do arquivo que você deseja criar, pode ser qualquer outro valor que você queira, a letra G serve para indicar ao programa a quantidade de Gigabytes que você deseja no arquivo, você também pode indicar o tamanho usando Megabytes se preferir, colocando algo como “5120M”.

/swapfile: Essa parte final indica o diretório com o nome do arquivo que você vai usar como SWAP, você pode colocar esse arquivo em outro diretório se quiser, mas este é o padrão do Ubuntu, assim como o nome, que você poderia mudar de “swapfile” para “changeman” se quiser.

Para criar um arquivo de 2GB dentro de /mnt/ você poderia fazer assim:

sudo fallocate -l 2048M /mnt/changeman

Mas claro, vamos seguir no primeiro exemplo, ainda que ele seja menos bem-humorado. 😋 

Depois de criado o seu arquivo, você pode dar um “ls” na sua raiz para ver se o arquivo está lá mesmo. O próximo passo é opcional, mas é recomendado, pois se trata de uma medida de segurança.

Se você der um “ls -l” no arquivo “swapfiles” você verá que por padrão outros usuários tem permissão de “ler” o que estiver na SWAP, o que pode não ser uma boa ideia, por isso, convém fazer a alteração:

sudo chmod 600 /swapfile

O “/” só é necessário caso você não esteja na raiz no terminal.

Feito isso, agora precisamos transformar este arquivo em um SWAP com este comando:

sudo mkswap /swapfile

O último passo é ativar a SWAP neste arquivo:

sudo swapon /swapfile 

E é basicamente isso, se você precisar alterar novamente, é só repetir o processo. Caso o comando  fallocate não funcione é possível fazer de outro jeito também, mas você precisar criar o arquivo e encher ele de zeros para ficar do tamanho que você precisa sem outras informações, pode ser feito dessa forma:

sudo dd if=dev/zero of=/mnt/5GiB.swap bs=1024 count=1048576

Provavelmente você não precisará disso.

Com isso você já tem a sua SWAP funcionando, mas na verdade ainda podemos considerar um novo “último passo” que é configurar para que essa SWAP seja ativada durante o boot e você não precise fazer isso manualmente. 

Para que isso ocorra precisamos inserir as informações de SWAP dentro de /etc/fstab, a questão é que se você usar o mesmo nome que o Ubuntu já usa por padrão “swapfile”, essa passo é desnecessário, pois a configuração já está lá corretamente, ainda assim, pode ser bom conferir se está tudo certo.

Use o editor de texto que preferir para abrir o arquivo, neste caso vou usar o próprio gedit:

sudo gedit /etc/fstab

Observe a linha que contém o “swapfile”:

Configuração do SWAPFiles

Reproduza a informação da última linha do arquivo para que tudo funciona corretamente.

E claro, você também pode fazer esse passo da edição do arquivo diretamente pelo terminal:

sudo echo '/swap none swap sw 0 0' | sudo tee -a /etc/fstab

Agora que você já entendeu como funciona o “SWAPFiles” conte pra gente o que você achou, prefere SWAP em arquivo ou em partição? Por quê?

Até a próxima!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!